2017-06-28 21 views
2

我测试DoingSomething()方法与下面的测试方法 -处理单元测试预期的例外MSTest的

[TestMethod()] 
[ExpectedException(typeof(ArgumentException),"Invalid currency.")] 
public void ConvertCurrencyTest_ExhangeRate() 
{ 
    try 
    { 
     DoingSomething(); 
    } 
    catch (ArgumentException Ex) 
    { 
    } 
    catch (Exception Ex) 
    { 
     Assert.Fail(); 
    } 
} 

测试结果表示,DoingSomething()没有抛出异常。但它确实引发了异常。

我在这里错过了什么?

+0

您正在使用try/catch中的异常,因此它不会冒泡被测试捕获。 – Nkosi

回答

3

您正在使用try/catch中的异常,因此它不会冒泡被测试抓住。

删除try/catch并让测试工具处理异常。无论如何,任何其他异常自然会导致测试失败。

[TestMethod()] 
[ExpectedException(typeof(ArgumentException),"Invalid currency.")] 
public void ConvertCurrencyTest_ExhangeRate() {  
    DoingSomething();   
}