gpt4 book ai didi

java - stub 一个方法,但仍然检查它是否是使用mockito调用的

转载 作者:太空宇宙 更新时间:2023-11-04 11:37:55 25 4
gpt4 key购买 nike

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 是否真正有效,只是担心它被调用。

最佳答案

在测试方法中,可以测试实际类的继承类,并且可以重写functionaA

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 一个方法,但仍然检查它是否是使用mockito调用的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43076993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com