Я пытаюсь создать unit test для моего сервиса с издеваемым DbContext. Я создал интерфейс IDbContext со следующими функциями:
public interface IDbContext : IDisposable
{
    IDbSet<T> Set<T>() where T : class;
    DbEntityEntry<T> Entry<T>(T entity) where T : class;
    int SaveChanges();
}
Мой реальный контекст реализует этот интерфейс IDbContext и DbContext.
Теперь я пытаюсь высмеять IDbSet<T> в контексте, поэтому он возвращает вместо List<User>.
[TestMethod]
public void TestGetAllUsers()
{
    // Arrange
    var mock = new Mock<IDbContext>();
    mock.Setup(x => x.Set<User>())
        .Returns(new List<User>
        {
            new User { ID = 1 }
        });
    UserService userService = new UserService(mock.Object);
    // Act
    var allUsers = userService.GetAllUsers();
    // Assert
    Assert.AreEqual(1, allUsers.Count());
}
Я всегда получаю эту ошибку на .Returns:
The best overloaded method match for
'Moq.Language.IReturns<AuthAPI.Repositories.IDbContext,System.Data.Entity.IDbSet<AuthAPI.Models.Entities.User>>.Returns(System.Func<System.Data.Entity.IDbSet<AuthAPI.Models.Entities.User>>)'
has some invalid arguments