测试任何派生的异常

时间:2014-05-20 00:20:18

标签: .net unit-testing tdd xunit

Hello guys(和gals),

我正在使用xUnit在.NET中构建我的测试单元,并且我试图断言某个方法是否抛出异常。我并不真正对异常的确切类型感兴趣,只要它继承自一些基类异常类。 我该怎么做?

我已经在Google上搜索了一些开箱即用的方法,但似乎我必须编写自己的类才能这样做。

1 个答案:

答案 0 :(得分:0)

此功能已经存在于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);
}
相关问题