After trying out repository pattern on small project I highly advice not to use it not because it complicate your system, and not because mocking data is nightmare, but because your testing became useless!!
Mocking data allows you add details without headers, add records that violate database constraints, remove entities that the database refuse to remove it. In real world a single update to table may affect multiple tables, such as log, history, summaries, etc., and after update certain record must reflect the updates such as last-modified-date field, auto generated keys, computed fields.
In short running your test on real database give you real results and you can test not only your services and interfaces but also database behavior, you can check if your stored procedure do the right things with data, return the expected result, is the record you send to delete really deleted! or did you forget to raise error from stored procedure and thousands of such scenarios.
I think entity framework implement repository pattern better than any of the any of the article I read so far and it goes fare beyond what they are trying to accomplish.
Lastly I think too many people invest lots of time on learning and implementing repository pattern and they refuse to let it go. Mostly to prove to themselves that they did not waste their time.