@DD-var

Как настроить moq для контроллера?

Решил написать несколько unit тестов для своих контроллеров, нашел либу moq. И не до конца разобрался как правильно с ней работать.
Есть сервис для добавление пользователей в бд. хотел бы узнать на какие ошибки будет реагировать и что будет отсылать. Не могу дописать unit test из-за того что не знаю что нужно возращать.

[Test]
        public void CheckAddUser()
        {
            SetingUsers();
            
            var moc = new Mock<IUserService>();
            moc.Setup(c => c.Create(It.IsAny<RegisterViewModel>()))
                .Returns<IdentityResult>("не знаю что тут возращать");
            

            var userController = new TestController(moc.Object);

            var result = userController.Create(newUser).Result;
        }


сам контроллер :
public async Task<IdentityResult> Create(RegisterViewModel user)
        {
            return await _userService.Create(user);
        }
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
sarapinit
@sarapinit Куратор тега C#
Точу водой камень
Вы не до конца разобрались не в либе, а в себе)
Сначала нужно поставить вопрос, что тестируем, если вы на него ответите будете знать что подавать на вход и что проверять на выходе.

У вас написано следующее "при любой модели пользователя на входе проверь что пользователь создается"
Допустим что вы проверите в конце IdentityResult на успех. Из мока вы видимо захотите вернуть успешный IdentityResult. Но это бессмысленно. Потому что вы все замокали и не тестируете никакую логику приложения, а тестируете библиотеку с моками.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы