在我的JUnit类中,我有以下代码:
@Mock
private HttpServletRequest servletRequest;
@Mock
WidgetHelper widgetHelper;
@Mock
JSONObject jsonObject;
@Mock
Date date;
verify(widgetHelper, times(1)).invokeAuditService(servletRequest, date, anyString(),
Matchers.eq("Member_Servicing_Email_Update"), jsonObject, anyString());
我得到以下输出:
This exception may occur if matchers are combined with raw values:
//incorrect:
someMethod(anyObject(), "raw String");
When using matchers, all arguments have to be provided by matchers.
For example:
//correct:
someMethod(anyObject(), eq("String by matcher"));
我想要实现的是:我想测试该方法的第 4 个参数是否包含字符串"Member_Servicing_Email_Update"
。 其余的参数可以被嘲笑。我为其他人使用了Matchers.anyObject()
,我说cannot match anyObject to java.lang.String, Date, HttpServlet
等等时出错。这里需要做什么?我也只是放了eq("Member_Servicing_Email_Update")
但eq
没有得到认可。
为所有原始参数添加Matchers.eq
:
verify(widgetHelper, times(1)).invokeAuditService(Matchers.eq(servletRequest), Matchers.eq(date), anyString(),
Matchers.eq("Member_Servicing_Email_Update"), Matchers.eq(jsonObject), anyString());
使用匹配器时,所有参数都必须由匹配器提供