将 Matchers.eq() 与其他模拟值一起使用时出现 InvalidUseOfMatchersException

InvalidUseOfMatchersException when using Matchers.eq() with other mocked values

在我的 JUnit class 中,我有以下代码:

@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());

When using matchers, all arguments have to be provided by matchers