【问题标题】:org.mockito.exceptions.misusing.InvalidUseOfMatchersException when i have no matcherorg.mockito.exceptions.misusing.InvalidUseOfMatchersException 当我没有匹配器时
【发布时间】:2014-08-07 14:31:56
【问题描述】:

我尝试模拟一个方法:

    PermissionsChecker checker = mock(PermissionsChecker.class);
    mockDoesUSerHasPermissions(checker, trustedUser, true);
    mockDoesUSerHasPermissions(checker, nonTrustedUser, false);



private void mockDoesUSerHasPermissions(PermissionsChecker checker, UserInfo userInfo, boolean doesHasPermissions) {
        when(checker.doesUserHavePermissions(Mockito.any(Venue3.class), Mockito.any(Venue3.class), userInfo, Mockito.any(ActionType.class))).thenReturn(doesHasPermissions);
    }

但我收到以下错误,我无法理解与我的代码有何关系:

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: 
Invalid use of argument matchers!
4 matchers expected, 3 recorded:

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.

【问题讨论】:

    标签: java unit-testing testing mocking mockito


    【解决方案1】:

    正如错误所说,您使用原始值和匹配器的组合。 userInfo 是原始值

    【讨论】:

    • 那我该如何正确包装呢? eq(userInfo)?
    • 是的。你试过了吗?
    猜你喜欢
    • 1970-01-01
    • 2022-07-20
    • 2021-09-24
    • 2020-09-17
    • 2017-02-12
    • 2020-03-23
    • 1970-01-01
    • 2017-06-16
    • 2011-06-05
    相关资源
    最近更新 更多