я не знаю, почему мои тесты блок не: Метод испытываемого:исключения XUnit терпит неудачу
public async Task<MyType> Get(string externalId)
{
if (externalId == null)
throw new ArgumentNullException();
if (externalId == "" || externalId == " ")
throw new FormatException();
// ...
}
испытания Единица измерения:
Action action = async() => await controller.Get(null);
// Act & Assert
action.ShouldThrow<ArgumentNullException>();
И есть не потому, что сообщение об ошибке говорит:
Ожидаемое исключение ArgumentNullException, которое не было выбрано, но не было выполнено исключение.
И это странно, потому что во время отладки этого теста была выбрана линия исключений!
Я использую xunit и fluentasserttions.
Почему ваш блок тест содержит код лезвия? Я подозреваю, что вы скопировали и наклеили неправильную вещь. Пожалуйста, предоставьте [mcve]. –
Вы не ожидаете действий, поэтому исключение не наблюдается, даже если оно происходит. Используйте Func вместо Action и ожидайте его, тогда будет наблюдаться исключение. –
@MartinCostello спасибо. – Nerf