xUnit for Legacy Code

时间:2017-06-19 13:36:19

标签: .net-core xunit expected-exception

正如其他帖子中广泛陈述的那样,xUnit中不存在ExpectedException。但是,是否有某些东西可以帮助将遗留测试移植到xUnit本质上是一个polyfill?

我相信随着.Net Core的加速采用,我们可能会看到.Net Standard 2,我们将看到越来越多的测试从其他框架移植到.Net Core中最容易开箱即用的框架工装。尽管ExpectedException可能不是最佳实践,但是具有遗留权限(即使是例如单独的NuGet包)也会极大地简化移植测试,因为这是基于每个测试的少数转换之一,并且不能通过简单的搜索替换。当你移植数百个单元测试时,“这可能导致问题”似乎不是一个令人满意的答案。

1 个答案:

答案 0 :(得分:0)

我可能误解了您的问题,但您可以通过执行以下操作来测试xUnit中的异常:

[Fact]
public void ExceptionTest()
{
    // Arrange
    // Act
    Action act = () => throw new Exception();

    // Assert
    Assert.Throws<Exception>(act);
}

通过添加xUnit ExpectedException来允许转换每个Assert.Throws测试。