Mockito thenReturn returns same instance

后端 未结 3 469
孤街浪徒
孤街浪徒 2021-02-04 00:03

I have this in Mockito:

when(mockedMergeContext.createNewEntityOfType(IService.class)).thenReturn(new ServiceMock());
         


        
3条回答
  •  Happy的楠姐
    2021-02-04 00:19

    The thenReturn method will always return what is passed to it. The code new Servicemock() is being executed prior to the call to thenReturn. The created ServiceMock is then being passed to thenReturn. Therefore thenReturn has a absolute instance of ServiceMock not a creation mechanism.

    If you need to provide an new instance, use thenAnswer

    when(mockedMergeContext.createNewEntityOfType(IService.class))
      .thenAnswer(new Answer() {
         public IService answer(InvocationOnMock invocation) {
            return new ServiceMock();
         }
       });
    

提交回复
热议问题