例如,如果我要测试以下类:
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 子句,似乎尝试使测试失败是最干净的方法,如果这实际上可能的话
注意事项:
我知道我可以验证代码的某些功能并检查它们是否具有特定值/是否已使用 Mockito 运行多次。但是,我想要一个解决方案,如果对测试方法进行的更改从根本上改变了它的工作方式(但不是本质上正在执行的任务),那么我将不必重写测试。
不幸的是,为了让这个问题更加困难,我无法对源代码进行任何修改。这个职位是我无法控制的,所以我必须在这些范围内工作。
编辑:
SomeClass 是我希望测试的类。它不是实际的 JUnit 测试。我已经编辑了我的原始问题以尝试澄清这一点。
最佳答案
我以前不得不处理过这类问题。我最终模拟了日志记录子系统(不简单但不过分复杂)并监听了“有趣”的日志记录调用,然后在它发生时标记失败。
关于java - 有没有办法验证在使用 JUnit 时是否在测试方法中调用了 try/catch 指令的 Catch 部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30620397/