存根一个方法,但仍检查它是否是使用 mockito 调用的


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

相关内容

最新更新