【问题标题】:Unit testing for exceptions that were catched对捕获的异常进行单元测试
【发布时间】:2017-11-17 13:00:23
【问题描述】:
public void methodToBeTested() {
    try {
       //Some logic that throws an exception
    }
    catch(Exception e) {
      //Logic dealing with an exception
    }
}

好吧,使用 ExpectedException 我们可以检查被测方法是否抛出了任何异常,但是当方法没有抛出而是捕获它时,如何检查是否发生了异常?

【问题讨论】:

  • 如果你在 catch 块中调用了一个服务,你可以测试这个服务调用是否发生
  • 或通过从 catch 中重新抛出异常
  • @pvpkiran 正在改变实际应用程序。我怀疑这就是他们想要的
  • 你的代码有//Logic dealing with an exception。验证此逻辑是否已执行。
  • @khelwood 实际上,捕获代码除了日志记录之外没有蚂蚁逻辑..

标签: java unit-testing exception-handling mockito powermock


【解决方案1】:

(如果您无法验证处理异常的逻辑,例如它是一些日志)在您的测试中:

  1. 模拟“一些引发异常的逻辑”以引发一些异常
  2. 拨打methodToBeTested
  3. 如果在调用过程中没有抛出异常,测试就OK了(如果有异常,如果使用junit,测试会自动失败)
  4. 验证模拟的“逻辑”[可选]

【讨论】:

  • 这是解决方法,我想检查是否发生了该异常..:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-29
  • 1970-01-01
  • 2020-10-02
  • 1970-01-01
  • 2017-01-19
  • 1970-01-01
相关资源
最近更新 更多