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
Post a Comment