Выбор ответа Junior Тестирование обновлено
Асинхронный тест
Вопрос
Как правильно объявить асинхронный тест в xUnit?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: public async Task Savesorder(). Тест должен возвращать Task, тогда раннер дождётся завершения и увидит исключения. async void фреймворк ждать не сможет (xUnit выдаёт ошибку анализатора). .Wait() блокирует поток и оборачивает исключения в AggregateException.
Варианты ответа
public async void Saves_order()public async Task Saves_order()правильный ответpublic void Saves_order() { SaveAsync().Wait(); }public Task Saves_order() => Task.Run(SaveAsync);, иначе тест не дождётся
Разбор
Тест должен возвращать Task, тогда раннер дождётся завершения и увидит исключения. async void фреймворк ждать не сможет (xUnit выдаёт ошибку анализатора). .Wait() блокирует поток и оборачивает исключения в AggregateException. Task.Run здесь лишний.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.