正如其他帖子中广泛陈述的那样,xUnit中不存在ExpectedException。但是,是否有某些东西可以帮助将遗留测试移植到xUnit本质上是一个polyfill?
我相信随着.Net Core的加速采用,我们可能会看到.Net Standard 2,我们将看到越来越多的测试从其他框架移植到.Net Core中最容易开箱即用的框架工装。尽管ExpectedException可能不是最佳实践,但是具有遗留权限(即使是例如单独的NuGet包)也会极大地简化移植测试,因为这是基于每个测试的少数转换之一,并且不能通过简单的搜索替换。当你移植数百个单元测试时,“这可能导致问题”似乎不是一个令人满意的答案。
答案 0 :(得分:0)
我可能误解了您的问题,但您可以通过执行以下操作来测试xUnit中的异常:
[Fact]
public void ExceptionTest()
{
// Arrange
// Act
Action act = () => throw new Exception();
// Assert
Assert.Throws<Exception>(act);
}
通过添加xUnit ExpectedException
来允许转换每个Assert.Throws
测试。