0

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

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

4

1 回答 1

1

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

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

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

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

于 2017-06-28T10:42:28.527 回答