Издевательство над EF DbContext с помощью MoqC#

Место общения программистов C#
Ответить
Anonymous
 Издевательство над EF DbContext с помощью Moq

Сообщение Anonymous »

Я пытаюсь создать модульный тест для своего сервиса с использованием имитируемого DbContext. Я создал интерфейс IDbContext со следующими функциями:

public interface IDbContext : IDisposable
{
IDbSet Set() where T : class;
DbEntityEntry Entry(T entity) where T : class;
int SaveChanges();
}


Мой реальный контекст реализует этот интерфейс IDbContext и DbContext.

Теперь я я пытаюсь имитировать IDbSet в контексте, поэтому вместо этого он возвращает List.

[TestMethod]
public void TestGetAllUsers()
{
// Arrange
var mock = new Mock();
mock.Setup(x => x.Set())
.Returns(new List
{
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.Returns(System.Func)'
has some invalid arguments


Подробнее здесь: https://stackoverflow.com/questions/259 ... t-with-moq
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»