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。
有没有一种方法可以伪造functionA,以便实际上不会调用它,但是我仍然可以看到,当SOME_BOOLEAN为true时,它将被调用?现在functionA已损坏,所以我编写的测试一直失败,因为functionA引发异常。
再说一次,我不担心测试functionA是否真正起作用,只要它被调用即可。
最佳答案
在测试方法中,您可以测试实际类的继承类,并且可以覆盖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
关于java - stub 方法,但仍检查是否使用了模仿,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43076993/