gpt4 book ai didi

java - 在被测试的方法中模拟对另一个类的另一个方法的调用

转载 作者:行者123 更新时间:2023-11-29 09:28:49 25 4
gpt4 key购买 nike

我正在测试一个方法 A,它调用另一个类 C 的另一个方法 B,它返回一个 Object 类型 D。我想使用 mockito 模拟对 B() 的调用。我怎么做?

代码:

function A()
{
/*some code here*/
C c = createC();
D d= null;
d = c.B(args);
/*some code here*/
}

最佳答案

首先,不是创建 C 的实际实例,而是创建它的 Test Double 版本,如下所示:

// Let's import Mockito statically so that the code looks clearer
import static org.mockito.Mockito.*;

// mock creation
C mockedC = mock(C.class);

然后在 mockedC 上发生某些事情时定义您的期望,例如:

when(mockedC.B(args)).thenReturn(new D());

它说,每当有人在 mockedC 上调用 B(args) 时,都会返回一个 D 的实例。

最后,您可以验证实际交互与预期交互,例如:

verify(mockedC)...

参见 docs了解更多详情。

关于java - 在被测试的方法中模拟对另一个类的另一个方法的调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32546657/

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