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是否真的有效,只是它会被调用。
答案 0 :(得分:0)
在测试方法中,您可以测试实际类的继承类,并且可以覆盖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