Я настраиваю потребителя для WebAPI и пишу некоторые модульные тесты. «Акт» часть моего теста выглядит следующим образом:
var dta = await service.AuthenticateAsync(customerId, userName, password, machineId);
try
{
service.AuthenticateAsync(customerId, userName, password, machineId).Wait();
}
catch (AggregateException ex)
{
exUnauthorized = ex;
}
try
{
httpTest.SimulateTimeout();
await service.AuthenticateAsync(customerId, userName, password, machineId);
}
catch (AggregateException ex)
{
exTimeout = ex;
}
Я настроил Flurl HttpTest следующим образом:
httpTest.RespondWithJson(auth)
.RespondWith(status: (int)HttpStatusCode.Unauthorized);
Для получения первого ответа об успехе и второго от несанкционированного. Как вы можете видеть позже в коде, я установил тайм-аут для проверки этого (если я установил его изначально, кажется, что время ожидания для всех запросов истекло).
Первый вызов успешен. Второй вызов, где я использую Wait()
в блоке try, работает и перехватывает статистическое исключение. Второй вызов, где я использую await
, не перехватывает исключение; он не проходит модульное тестирование за исключением исключения, вызванного методом.
Чего мне не хватает? Почему ожидание звонка не работает правильно?