DoReturn抛出UnfinishedStubbingException

时间:2015-11-05 09:14:53

标签: java unit-testing mocking mockito

好吧所以我显然不太了解doReturn(...)。when(...)和when(...)。thenReturn(...)之间的区别。

当我有一个课时,我在那里用@Mock注释Mocks并在我的类中注入@InjectMocks我想测试然后我在其中一个模拟中使用doReturn我得到一个UnfinishedStubbingException。但是当我使用的时候(...)。然后返回(...)一切似乎都运行得很好。我认为doReturn更值得推荐,因为它并没有真正调用该方法(我猜这个方法(...)。thenReturn(...)不会,因为该字段是模拟。)

所以这是一个例子:

doReturn(siteModel).when(siteService.getCurrentSite()) --> UnfinishedStubbingException

when(siteService.getCurrentSite()).thenReturn(siteModel) --> Works just fine

1 个答案:

答案 0 :(得分:15)

正确的调用是:

doReturn(...).when(whatever).theMethod()

而不是.when(whatever.theMethod())