【问题标题】:Test for any derived exception测试任何派生异常
【发布时间】:2014-05-20 00:20:17
【问题描述】:

大家好(和女孩),

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

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

【问题讨论】:

    标签: .net unit-testing tdd xunit


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-12
      相关资源
      最近更新 更多