Asp.Net Core WebApi: создание модульных тестов - PullRequest
0 голосов
/ 29 мая 2018

У меня есть класс AccountController, здесь его ctor:

public AccountController(
            UserManager<User> userManager,
            SignInManager<User> signInManager,
            RoleService roleService,
            IConfiguration configuration)
        {
            _userManager = userManager;
            _signInManager = signInManager;
            _roleService = roleService;
            _configuration = configuration;
        }

RoleService это мой собственный класс.

Я создал проект xUnit Test и использую Entity Framework Core, чтобы избежать подделки и фальсификации базы данных.Я использую UseInMemoryData метод:

var options = new DbContextOptionsBuilder<ApplicationDbContext>()
                .UseInMemoryDatabase(Guid.NewGuid().ToString())
                .Options;
            var context = new ApplicationDbContext(options);

Но я не понимаю, как я могу проверить AccountController, ведьма вводит UserManager<User>, SignInManager<User> и так далее.Как я могу создать экземпляр класса AccountController?

1 Ответ

0 голосов
/ 29 мая 2018

Обычно я не создаю модульный тест для контроллеров, потому что нам нужно много чего подделать, и это тяжелая работа.

Если вы думаете, что ваш контроллер вызывает только другой фрагмент кода, такой как ApplicationСлужба или обработчик команд Вы можете покрыть свой контроллер интеграционными тестами и создать модульный тест для своих командных обработчиков или службы приложений или любого уровня, который имеет вашу бизнес-логику.

Но, возможно, если вы действительно хотите создатьДля модульного тестирования вашего контроллера вам потребуется создать макет всех зависимостей, которые вам нужны в ваших контроллерах, используя такую ​​инфраструктуру, как Moq.

Надеюсь, эта помощь: D

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...