mockito投掷InvalidUseOfMatchersException

时间:2016-04-21 13:46:28

标签: junit mockito matcher

我的getUserDetails类将User(custome class)和string作为参数并返回User。如果我使用Mockito匹配器如下:

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

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

3 个答案:

答案 0 :(得分:2)

匹配器不用于返回。

.thenReturn(any(User.class));

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

答案 1 :(得分:1)

您应该将User的实例传递给thenReturn,而不是匹配器。 <{1}}被调用时将返回User个实例。

答案 2 :(得分:0)

此代码可以使用:

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

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