InvalidUseOfMatchersException:不使用任何原始值

时间:2017-03-19 19:42:00

标签: java mockito hamcrest

我不知道导致此问题的原因,但它会抛出InvalidUseOfMatchersException。

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"));

For more info see javadoc for Matchers class.

导致异常的代码如下。

when(EventHandlingForFileUpload.onUploadEvent(any(CustomBatchFile.class))).thenReturn(SomeCustomEvents);

2 个答案:

答案 0 :(得分:0)

如果EventHandlingForFileUpload.onUploadEvent是静态方法,那么您需要use PowerMock或重构您的代码; Mockito仅适用于非final类和接口上的非final实例方法(不含Mockito 2.1's opt-in final-mocking magic)。

答案 1 :(得分:0)

我也没有使用任何原始值但得到了#34; InvalidUseOfMatchersException"

我有类似

的东西
when(service.getResolver(eq(document.getId()), anyString())).thenReturn(aResolver); 

它正在抛出异常。 "文件"是一个模拟

我把它改成后......

when(service.getResolver(eq(docId), anyString())).thenReturn(aResolver);

...它有效(即我移出了方法调用getId())