Юнит тестирование асинхронного метода

155
20 октября 2018, 18:10

Написал метод для тестирования входа в аккаунт:

    [Fact]
    public void LoginIsSuccessful()
    {           
        var result = controller.Login(new LoginViewModel()
        {
            Login = "12345il",
            Password = "12345678"
        }).Result;
        ....
    }

При его запуске возникает ошибка:

System.AggregateException : One or more errors occurred. (Object reference not set to an instance of an object.)

Переменная result принимает значение null в процессе теста. Стал выяснять почему. Оказалось, всё из-за вызова метода аутентификации:

    [HttpPost]
    public async Task<IActionResult> Login(LoginViewModel model)
    {
        if (ModelState.IsValid)
        {
            ServiceResult result = await _accServ.LoginAsync(model);
            if (result.Successful)
            {
                // без вызова этого метода, тест проходит без ошибок
                await AuthenticateAsync(model.Login);
                // в нём всего лишь устанавливаются куки
                ...
            }
           ....
    }

Объясните, пожалуйста, как можно решить данную проблему?

READ ALSO
Удаление временных файлов в Temp

Удаление временных файлов в Temp

Решил написать программу которая будет удалять временные файлы которые старше n-днейПрограмма файлы удаляет, но есть одно НО, те файлы которые...

152
Извлечь корень из отрицательного числа

Извлечь корень из отрицательного числа

Как извлечь корень из отрицательного числа? Например, результатом выражения MathPow(-8, 1

195
#DEFINE в C# (Unity)

#DEFINE в C# (Unity)

Прогаю на С# в Unity, нередко используя команды препроцессора #if/#endif, #region/#endregion и прочие

153