好吧所以我显然不太了解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
答案 0 :(得分:15)
正确的调用是:
doReturn(...).when(whatever).theMethod()
而不是.when(whatever.theMethod())
。