假设我有一个类
class SomeClass
{
public void methodA()
{}
public void methodB()
{}
public void someMethod()
{
methodA();
methodB();
}
}
我想用 Mockito 测试 someMethod() 的行为。
我能想到的唯一方法是使用 spy();
有点像
SomeClass someClass = spy(new SomeClass());
someClass.someMethod();
InOrder inOrder = inOrder(someClass);
inOrder.verify(someClass).methodA();
inOrder.verify(someClass).methodB();
我是 mockito 的新手,文档说
“真正的 spy 应该谨慎且偶尔使用,例如在处理遗留代码时。”
所以也许我遗漏了一些东西,并且有更好(正确)的方法来验证是否调用了 methodA 和 methodB 而无需在测试用例中显式调用它们。
谢谢。
最佳答案
是的,spy()
适合您的目的。警告是由于调用了真实的方法,因此您可能会得到意想不到的结果(例如 - 从银行账户中提取真钱)
关于java - 这是 Mockito spy 的正确案例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3692469/