在某些情况下,我不在乎抛出什么异常(只要抛出一些异常)。很遗憾,
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(); }
);
}