2016-04-21 21 views
1

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

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

它给了我InvalidUseOfMatchersException 2点的匹配预期,3中。我不能使用上述表达式吗?

回答

2

匹配器不用于返回。

.thenReturn(any(User.class)); 

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

1

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

0

该代码将工作:

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

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

相关问题