2016-04-21 51 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()

相關問題