public void GetAllLists_should_return_lists() { // Arrange - We're mocking our dbSet & dbContext // in-memory data IQueryable <TodoList> lists = new List <TodoList>() { new TodoList() { Id = 1, Name = "First list", Items = new HashSet <TodoItem>(), }, new TodoList() { Id = 2, Name = "Second list", Items = new HashSet <TodoItem>(), }, }.AsQueryable(); // To query our database we need to implement IQueryable var mockSet = new Mock <DbSet <TodoList> >(); mockSet.As <IQueryable <TodoList> >().Setup(m => m.Provider).Returns(lists.Provider); mockSet.As <IQueryable <TodoList> >().Setup(m => m.Expression).Returns(lists.Expression); mockSet.As <IQueryable <TodoList> >().Setup(m => m.ElementType).Returns(lists.ElementType); mockSet.As <IQueryable <TodoList> >().Setup(m => m.GetEnumerator()).Returns(lists.GetEnumerator()); var mockContext = new Mock <TodoContext>(); mockContext.Setup(c => c.Lists).Returns(mockSet.Object); // We also need a push service var mockPush = new Mock <IPushService>(); // Act var sub = new TodoService(null, mockContext.Object, mockPush.Object); var actual = sub.GetAllLists(); // Assert actual.Should() .NotBeEmpty() .And.HaveCount(2); actual.First().Value.Should().Be("First list"); }