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 函数 A 添加到函数 1 中。我现在正在尝试编写一个测试,该测试检查以确保函数 A 在 SOME_BOOLEAN 为 true 时被调用,但在 SOME_BOOLEAN 为 false 时不会调用它。
有没有办法让我伪造函数 A,这样它实际上就不会被调用,但我仍然可以看到当 SOME_BOOLEAN 为 true 时它会被调用?现在函数 A 被破坏了,所以我编写的测试一直失败,因为函数 A 抛出异常。
同样,我不担心测试函数A是否真的有效,只是担心它被调用。
在测试方法中,可以测试实际类的继承类,并且可以覆盖 funtionaA
final boolean[] methodCalled = new boolean[1];
MyClass testTarget = new MyClass()
{
void functionA(args)
{
methodCalled[0] = true;
}
};
testTarget.function1(arg1, arg2, arg3);
//assert methodCalled[0] is true