【发布时间】:2017-08-21 23:11:12
【问题描述】:
protected void function1(arg1, arg2, arg3) throws Exception {
Object myObject = buildMyObjectUsing(arg1, arg2, arg3);
if(SOME_BOOLEAN){
functionA(arg1, myObject)
} else{
myObject.functionB(arg1)
}
}
我正在使用遗留代码并将 void functionA 添加到 function1。我现在正在尝试编写一个测试,以确保在 SOME_BOOLEAN 为 true 时调用 functionA,但在 SOME_BOOLEAN 为 false 时不会调用它。
有没有办法可以伪造 functionA 以便它实际上不会被调用,但我仍然可以看到它会在 SOME_BOOLEAN 为真时被调用?现在 functionA 坏了,所以我写的测试一直失败,因为 functionA 抛出了一个异常。
同样,我并不担心测试 functionA 是否真的有效,只是它会被调用。
【问题讨论】:
-
如果是这种情况,你的测试用例应该只测试 SOME_BOOLEAN 为真,对吧?
-
我正在尝试进行一个测试,该测试仅在调用 functionA 时通过,因为 SOME_BOOLEAN 为真。如果在 SOME_BOOLEAN 为 false 时调用 functionA,则测试应该失败。这有帮助吗?我是单元测试的新手,所以我可能会倒退。
-
函数是私有的吗?
-
no functionA 不是私有的。目前它是一个受保护的虚空