gpt4 book ai didi

java - mockito, spy- 不确定部分模拟是如何完成的

转载 作者:行者123 更新时间:2023-12-04 14:40:49 24 4
gpt4 key购买 nike

我有一个类,我想在其中模拟类的某些方法并测试其他方法。这是我可以验证并断言它正在工作的唯一方法。

class UnderTest{
public void methodToTest(){
methodToCall1()
methodToCall2()
}


public void methodToCall1(){
}

public void methodToCall2(){
}

}

现在,因为我想测试第一个方法,所以我想创建一个 UnderTest 的部分模拟,这样我就可以验证这两个方法是否被调用。我如何在 Mockito 中实现这一目标?

感谢您的帮助!

最佳答案

你提到你想做两件事:
1. Create real partial mocks
2. Verify method invocations

但是,由于您的目标是验证 methodToCall1()methodToCall2() 是否实际被调用,您需要做的就是 spy on the real object .这可以通过以下代码块完成:

    //Spy UnderTest and call methodToTest()
UnderTest mUnderTest = new UnderTest();
UnderTest spyUnderTest = Spy(mUnderTest);
spyUnderTest.methodToTest();

//Verify methodToCall1() and methodToCall2() were invoked
verify(spyUnderTest).methodToCall1();
verify(spyUnderTest).methodToCall2();

如果其中一个方法没有被调用,例如methodToCall1,将抛出异常:

    Exception in thread "main" Wanted but not invoked:
undertest.methodToCall1();
...

关于java - mockito, spy- 不确定部分模拟是如何完成的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19127381/

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