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

标签 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() 没有抛出异常。但它确实引发了异常。

我在这里错过了什么?

最佳答案

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

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

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

关于c# - 在 MSTest 中处理单元测试中的预期异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44807853/

相关文章:

c# - 如何将所有文件扩展名从 Gif 更改为 gif?

c# - 字典与数据库(Mysql)

unit-testing - "zef test ."返回的结果与使用 raku -Ilib 运行某些测试不同

java - 避免检查异常

javascript - js异常位置

c# - 方法必须有返回类型 (C#)

c# - 如何避免在 View 中循环?

ios - 从命令行运行 Xcode 单元测试时出错

java - 单元测试私有(private)字段

java - 为什么对于 Thread 的子类来说吞咽 InterruptedException 是可以的?