欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: Invalid use of argument matchers!

程序员文章站 2022-04-25 22:11:41
...

在写Android 单元测试的mock时,一直报这个错误

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: 
Invalid use of argument matchers!
8 matchers expected, 7 recorded:
-> at......

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.

我的代码:

...
stubber.when(mockedClient).get(eq(url), ArgumentMatchers.<String, String>anyMap(), "",null,null,null,null,null);
...

在mock方法时,方法的参数要不都保持为具体的值,要不就都为匹配任意值,如果某个参数想要用确定的值,其他为任意值,这个参数可以使用eq(参数)的方法,改成下面的代码解决此问题

...
stubber.when(mockedClient).get(eq(url), ArgumentMatchers.<String, String>anyMap(), anyString(),anyString(),anyString(),anyString(),anyString(),anyString());
...
相关标签: 单元测试 测试