gpt4 book ai didi

java - 使用 Mockito 调用最终类静态方法的模拟对象

转载 作者:行者123 更新时间:2023-11-29 09:48:44 24 4
gpt4 key购买 nike

我刚刚开始模拟我们应用程序的不同层。我发现我的一个模拟对象在调用最终类静态方法时返回 NPE。有解决办法吗?

例如

when(mockObject.someMethod(FinalClass.staticMethod(someParam)).anotherMethodCall)
.thenReturn("someString");

最佳答案

您必须同时使用 PowerMock 和 Mockito。

我不明白您的代码片段试图做什么,但以下片段允许 Calendar 类的静态 getInstance() 方法返回模拟的日历 对象。也许这会为您指明正确的方向

在类(class)层面:

@RunWith(PowerMockRunner.class)
@PrepareForTest(Calendar.class)
public class XXXXXX {

在你的测试方法中:

PowerMockito.mockStatic(Calendar.class);
Calendar calendar = mock(Calendar.class);
when(calendar.get(eq(Calendar.HOUR_OF_DAY))).thenReturn(3);

Mockito.when(Calendar.getInstance()).thenReturn(calendar);

关于java - 使用 Mockito 调用最终类静态方法的模拟对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17083432/

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