2014-05-20 42 views
0

大家好(和gals),測試任何派生異常

我使用xUnit在.NET中構建我的測試單元,並試圖斷言某個方法是否引發異常。我並不真正對異常的確切類型感興趣,只要它從一些基本的異常類繼承而來。 我該怎麼做?

我在谷歌搜索了一些開箱即用的方法,但似乎我不得不寫我自己的類來這樣做。

回答

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); 
}