测试任何派生异常



大家好,

我正在使用xUnit在。net中构建我的测试单元,我试图断言如果某个方法抛出异常。我对异常的确切类型并不感兴趣,只要它继承了某个基异常类即可。我该怎么做?

我已经在Google上搜索了一些方法来做到这一点,但似乎我必须编写自己的类来做到这一点。

这个功能已经存在于xunit.net (v2-beta)中,但是它是一个try-catch块来简单地解决当前稳定版本(v1)上的问题。

[Fact]
public void Test()
{
    try
    {
        // some test logic....
        Assert.True(false, "Exception should be thrown.");
    }
    catch
    {
    }
}

这是另一种方法。

[Fact]
public void AnotherTest()
{
    var exception = Record.Exception(() =>
    {
        /*test logic..*/
    });
    Assert.IsAssignableFrom<Exception>(exception);
}

最新更新