在MSTest中处理单元测试中的预期异常

时间:2017-06-28 16:20:18

标签: c# unit-testing exception mstest

我正在使用以下测试方法测试DoingSomething()方法 -

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

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

我在这里想念的是什么?

1 个答案:

答案 0 :(得分:5)

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

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

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