Итак, я снова пытаюсь использовать другой контроллер для тестирования настольного приложения Cocoa с использованием NUnit и Moq. Проблема в том, что даже после операции .add () у меня все еще нет того, что я только что добавил, используя макет. Точнее, вот как я делаю макет:
User user = new User
{
email = "test@gmail.com",
password = "1",
firstName = "Test",
lastName = "Test"
};
List<User> dataSource = new List<User>();
var userServiceMock = new Mock<IUserService>(MockBehavior.Strict);
userServiceMock.Setup(x => x.add(It.IsAny<User>()));
userServiceMock.Setup(x => x.getAllUsers()).Returns(dataSource);
var controller = new CreateAccountCoreController(userServiceMock.Object);
//act
controller.submit();
//assert
Assert.That(dataSource.Contains(user));
, а в контроллере это так:
readonly IUserService userService;
public CreateAccountCoreController(IUserService userService)
{
this.userService = userService;
}
public void submit()
{
User user = new User
{
email = "test@gmail.com",
password = "1234",
firstName = "Test",
lastName = "Test",
};
userService.add(user);
List<User> users = userService.getAllUsers();
/*users it is empty here..*/
}
Так что мой тест всегда не проходит, потому что в списке пользователей он пуст даже после .адд операции. Можете ли вы помочь, пожалуйста?