Published: April 28 2014

Moq - Get Setup() to return a dynamic collection from a fake repository

Use Moq lazy loading to return an updated collection from the Setup() method, it's as easy as changing the argument to the Setup().Returns() method from an object to a lambda expression.

So if you've got this:

_mockUserRepository.Setup(x => x.GetAll()).Returns(FakeUserData.Users);

Just change it to this:

_mockUserRepository.Setup(x => x.GetAll()).Returns(() => FakeUserData.Users);


If you are using this approach you also need to remember to reset your fake data at the beginning of each test, I do this with a simple static reset method on my fake data class.

class FakeUserData
    public static void Reset()
        _users = null;


Which is called before each test with the following setup method (using MSTest):

public void Setup()



Need Some ASP.NET Help?

Search fiverr to find help quickly from experienced ASP.NET freelance developers.

Follow me for updates

I share all new blog posts on Twitter and Facebook.

When I'm not coding

My wife and I are attempting to ride motorcycles around Australia and vlog about it on YouTube.


Supported by