У меня есть некоторые случаи, когда мне неважно, какое исключение выбрано (до тех пор, пока не будет выбрано какое-то исключение). К сожалению,
Assert.Throws<Exception>(someDelegate);
не проходит, если точно не создается экземпляр Exception
(а не экземпляр производного класса). Я знаю, что могу получить поведение, которое я хочу с помощью
Exception exception = Record.Exception(someDelegate);
Assert.NotNull(exception);
но он не читается правильно. Я что-то пропустил в xUnit, который имеет поведение, которое я хочу? Вот два теста, которые показывают, что я имею в виду:
[Fact]
public void Throws_exception_and_passes() {
Exception exception = Record.Exception(
() => { throw new InvalidOperationException(); }
);
Assert.NotNull(exception);
}
[Fact]
public void Throws_exception_and_fails() {
Assert.Throws<Exception>(
() => { throw new InvalidOperationException(); }
);
}