错误详情:
org.mockito.exceptions.misusing.WrongTypeOfReturnValue:
Boolean cannot be returned by updateItemAttributesByJuId()
updateItemAttributesByJuId() should return ResultRich
This exception might occur in wrongly written multi-threaded tests.
Please refer to Mockito FAQ on limitations of concurrency testing.
我的代码:
@InjectMocks
protected ItemArrangeManager arrangeManagerSpy = spy(new ItemArrangeManagerImpl());
@Mock
protected JuItemWriteService juItemWriteService;
when(arrangeManagerSpy
.updateItemAttributes(mapCaptor.capture(), eq(juId), eq(itemTO.getSellerId())))
.thenReturn(false);
正如你所看到的,我呼吁when
有关updateItemAttributes
(其中不归路boolean
)不是updateItemAttributesByJuId
。
- 为什么尝试的Mockito返回一个
boolean
从updateItemAttributesByJuId
? - 如何纠正?
@Repository
使用@Aspect测试某些Spring DAO方法时,我也遇到了这个问题。如果我这样做when(someDao.someMethod()).thenReturn(List<xxx>)
,则会收到此WrongTypeOfReturnValue异常。通过调试,我可以看到该someMethod
方法实际上是在上面的语句中调用的,并触发了“周围通知”并返回a,null
但Mockito期望aList<xxx>
。