我在Mockito中有这个:
when(mockedMergeContext.createNewEntityOfType(IService.class)).thenReturn(new ServiceMock());
该createNewEntityOfType方法应始终返回一个新ServiceMock实例,但它会返回两次相同的引用。
createNewEntityOfType
ServiceMock
为什么该thenReturn方法不返回新值ServiceMock?
thenReturn
该thenReturn方法将始终返回传递给它的内容。该代码new Servicemock()是在调用之前执行的thenReturn。ServiceMock然后将创建的内容传递给thenReturn。因此thenReturn有一个绝对的实例而ServiceMock不是创建机制。
new Servicemock()
如果需要提供新实例,请使用thenAnswer
when(mockedMergeContext.createNewEntityOfType(IService.class)) .thenAnswer(new Answer<IService>() { public IService answer(InvocationOnMock invocation) { return new ServiceMock(); } });