例如,如果我想测试以下课程:
public class SomeClass{
public void someMethod() {
try {
//Some code, where comething could go wrong
} catch (Exception err) {
//Handling it amounts to logging the problem and trying to continue
}
}
}
如果我随后使用 JUnit 测试此方法,那么如果 try 子句中确实出现问题并且 catch 代码运行,则测试将通过。
我想让它在运行 catch 子句指令时测试失败。
我确实想到了几种可以尝试编写测试的方法,以便获得同等的功能,但每种方法都有我不想以这种方式处理的原因。如果达到任何 catch 子句,则尝试使测试失败似乎是最干净的方法(如果这实际上是可能的)
Notes:
我知道我可以验证代码的某些功能并检查它们是否具有特定值/是否已使用 Mockito 运行多次。然而,我想要一个解决方案,如果对测试方法进行更改,从根本上改变它的工作方式(但不是本质上执行什么任务),那么我将不必重写测试。
不幸的是,为了让这个问题变得更加困难,我无法对源代码进行任何修改。这个职位超出了我的控制范围,所以我必须在这些范围内工作。
EDIT:
SomeClass 是我想要测试的类。这不是实际的 JUnit 测试。我编辑了原来的问题以尝试澄清这一点。
我以前必须处理过此类问题。我最终模拟了日志记录子系统(不简单但也不过分复杂)并监听“有趣的”日志记录调用,然后在发生故障时标记故障。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)