java - mockito verify method call inside method -


for unit tests trying verify if there way verify method call inside method mockito verify?

an example be:

public delete(param) {     videoservice.deletevideo(param); << want verify call of method     return etc..  } 

i can check if delete called :

verify(mock,times(1)).delete(param); 

is there way check inside method like: verify(mock,times(1)).delete(param).videoservice.deletevideo(param);

you can use spy.

public class myvideoservice {    private videoservice videoservice;    public myvideoservice(videoservice videoservice) {     this.videoservice = videoservice;   }    public void delete(string param) {     videoservice.deletevideo(param);   } }  public class videoservice {   public void deletevideo(string param) {   } } 

if want test object uses myvideoservice. e.g.

public class objectthatusesmyvideoservice {    private myvideoservice myvideoservice;    objectthatusesmyvideoservice(myvideoservice myvideoservice) {     this.myvideoservice = myvideoservice;   }    public void deletevideo(string param) {     myvideoservice.delete(param);   } } 

you can write test this

public class myvideoservicetest {    @test   public void delete(){     // videoservice mock     videoservice videoservicemock = mockito.mock(videoservice.class);       // creating real myvideoservice     myvideoservice myvideoservice = new myvideoservice(videoservicemock);      // creating spy proxy     myvideoservice myvideoservicespy = mockito.spy(myvideoservice);      objectthatusesmyvideoservice undertest = new objectthatusesmyvideoservice(myvideoservicespy);      undertest .deletevideo("somevalue");      // verify myvideoservice invoked     mockito.verify(myvideoservicespy, mockito.times(1)).delete("somevalue");      // verify myvideoservice invoked videoservice     mockito.verify(videoservicemock, mockito.times(1)).deletevideo("somevalue");   } } 

Comments