gpt4 book ai didi

java - 使用 void 方法的 doNothing 方法时出现 UnfinishedStubbingException

转载 作者:行者123 更新时间:2023-12-01 19:00:31 26 4
gpt4 key购买 nike

以下代码导致 UnfinishedStubbingException

PowerMockito.doNothing().when(widgetHelper).invokeAuditService(Matchers.eq(servletRequest), Matchers.eq(date), anyString(), Matchers.eq("Member_Servicing_Email_Update"), Matchers.eq(jsonObject), anyString());

verify(widgetHelper, times(1)).invokeAuditService(Matchers.eq(servletRequest), Matchers.eq(date), anyString(), Matchers.eq("Member_Servicing_Email_Update1"), Matchers.eq(jsonObject), anyString());


org.mockito.exceptions.misusing.UnfinishedStubbingException:
Unfinished stubbing detected here:
-> at ....

E.g. thenReturn() may be missing.
Examples of correct stubbing:
when(mock.isOk()).thenReturn(true);
when(mock.isOk()).thenThrow(exception);
doThrow(exception).when(mock).someVoidMethod();
Hints:
1. missing thenReturn()
2. you are trying to stub a final method, you naughty developer!

我在这里缺少什么?下面是invokeAuditService的方法签名

public static void invokeAuditService(HttpServletRequest request, Date serviceCallTime, String response, 
String activityKey, JSONObject detailsReplaceVal, String pmAccountId){
AuditLogUtils.invokeAuditService(request, date, response, activityKey, json, someString);
}

我这样做了:

PowerMockito.mockStatic(WidgetHelper.class);
PowerMockito.doNothing().when(WidgetHelper.class);
WidgetHelper.invokeAuditService(Matchers.eq(servletRequest), Matchers.eq(date), anyString(),
Matchers.eq("Member_Servicing_Email_Update"), Matchers.eq(jsonObject), anyString());

verify(widgetHelper, times(1)).invokeAuditService(Matchers.eq(servletRequest), Matchers.eq(date), anyString(),
Matchers.eq("Member_Servicing_Email_Update123"), Matchers.eq(jsonObject), anyString());

Junit 运行时没有任何错误,但它应该会失败,因为我在 whenverify 中传递了 Member_Servicing_Email_UpdateMember_Servicing_Email_Update123

最佳答案

该错误是由以下行引起的,该行是无效语法:PowerMockito.doNothing().when(WidgetHelper.class);

当您创建模拟时,它的所有方法调用默认为doNothing。所以你不需要显式声明它。

但是,如果您想声明一个行为,则需要命名相关方法。给定行中缺少哪个。

关于java - 使用 void 方法的 doNothing 方法时出现 UnfinishedStubbingException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59643836/

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