【问题标题】:mockito throwing InvalidUseOfMatchersException模拟抛出 InvalidUseOfMatchersException
【发布时间】:2016-04-21 13:46:28
【问题描述】:

我的 getUserDetails 类将用户(客户类)和字符串作为参数并返回用户。如果我使用 Mockito 匹配器如下:

when(authService.getUserDetails(any(User.class),anyString())).thenReturn(any(User.class));

它给了我 InvalidUseOfMatchersException 2 个预期的匹配器,找到了 3 个。不能用上面的表达式吗?

【问题讨论】:

    标签: junit mockito matcher


    【解决方案1】:

    匹配器不用于返回。

    .thenReturn(any(User.class));
    

    你必须在这里返回一些有形的东西。匹配器仅用于匹配输入,以便您可以指定在提供特定输入时返回的内容。你仍然需要有一个真正的输出才能返回。

    【讨论】:

      【解决方案2】:

      您应该将User 的实例传递给thenReturn,而不是匹配器。调用 authService.getUserDetails 时将返回 User 实例。

      【讨论】:

        【解决方案3】:

        此代码将起作用:

          User user=new User();
          when(authService.getUserDetails(any(User.class),anyString())).thenReturn(user));
        

        因为应该有一个值而不是输入 thenReturns()

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多