mockito - Error while doing unit test - "Actually, there were zero interactions with this mock" - Android -


i trying unit test presenter , view in android app following code :

@runwith(mockitojunitrunner.class) public class moviedetailspresenterunittest {      @mock     networkapi mnetworkapi;      @mock     networkservice mnetworkservice;      @mock     moviedetailscontract.view mview;      @mock     moviedetailsactivity mmoviedetailsactivity;      private moviedetailspresenter mmoviedetailspresenter;       @before     public void setup() throws exception {         this.mmoviedetailspresenter = new moviedetailspresenter(mnetworkservice, mmoviedetailsactivity);     }      @rule     public final rxschedulersoverriderule moverrideschedulersrule = new rxschedulersoverriderule();       @test     public void testmoviedetailsemptyresponse() throws exception {         moviedetails moviedetails = new moviedetails();         when(mnetworkapi.getmoviedetails("abcd")).thenreturn(observable.<moviedetails>just(moviedetails));         mmoviedetailspresenter.loadmoviedetails("abcd");         verify(mmoviedetailsactivity).onsupportnavigateup();     }      @after     public void teardown() throws exception {         rxandroidplugins.getinstance().reset();     } } 

but error :

wanted not invoked: mmoviedetailsactivity.onsupportnavigateup(); -> @ com.android.sushil.omdbclient.moviedetailspresenterunittest.testmoviedetailsemptyresponse(moviedetailspresenterunittest.java:65) actually, there 0 interactions mock.  wanted not invoked: mmoviedetailsactivity.onsupportnavigateup(); -> @ com.android.sushil.omdbclient.moviedetailspresenterunittest.testmoviedetailsemptyresponse(moviedetailspresenterunittest.java:65) actually, there 0 interactions mock.      @ com.android.sushil.omdbclient.moviedetailspresenterunittest.testmoviedetailsemptyresponse(moviedetailspresenterunittest.java:65)     @ sun.reflect.nativemethodaccessorimpl.invoke0(native method)     @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:62)     @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43)     @ java.lang.reflect.method.invoke(method.java:498)     @ org.junit.runners.model.frameworkmethod$1.runreflectivecall(frameworkmethod.java:50)     @ org.junit.internal.runners.model.reflectivecallable.run(reflectivecallable.java:12)     @ org.junit.runners.model.frameworkmethod.invokeexplosively(frameworkmethod.java:47)     @ org.junit.internal.runners.statements.invokemethod.evaluate(invokemethod.java:17)     @ org.junit.internal.runners.statements.runbefores.evaluate(runbefores.java:26)     @ org.junit.internal.runners.statements.runafters.evaluate(runafters.java:27)     @ com.android.sushil.omdbclient.util.rxschedulersoverriderule$3.evaluate(rxschedulersoverriderule.java:45)     @ org.junit.rules.runrules.evaluate(runrules.java:20)     @ org.junit.runners.parentrunner.runleaf(parentrunner.java:325)     @ org.junit.runners.blockjunit4classrunner.runchild(blockjunit4classrunner.java:78)     @ org.junit.runners.blockjunit4classrunner.runchild(blockjunit4classrunner.java:57)     @ org.junit.runners.parentrunner$3.run(parentrunner.java:290)     @ org.junit.runners.parentrunner$1.schedule(parentrunner.java:71)     @ org.junit.runners.parentrunner.runchildren(parentrunner.java:288)     @ org.junit.runners.parentrunner.access$000(parentrunner.java:58)     @ org.junit.runners.parentrunner$2.evaluate(parentrunner.java:268)     @ org.junit.runners.parentrunner.run(parentrunner.java:363)     @ org.mockito.internal.runners.junit45andhigherrunnerimpl.run(junit45andhigherrunnerimpl.java:37)     @ org.mockito.runners.mockitojunitrunner.run(mockitojunitrunner.java:62)     @ org.junit.runner.junitcore.run(junitcore.java:137)     @ com.intellij.junit4.junit4ideatestrunner.startrunnerwithargs(junit4ideatestrunner.java:117)     @ com.intellij.junit4.junit4ideatestrunner.startrunnerwithargs(junit4ideatestrunner.java:42)     @ com.intellij.rt.execution.junit.junitstarter.preparestreamsandstart(junitstarter.java:262)     @ com.intellij.rt.execution.junit.junitstarter.main(junitstarter.java:84)     @ sun.reflect.nativemethodaccessorimpl.invoke0(native method)     @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:62)     @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43)     @ java.lang.reflect.method.invoke(method.java:498)     @ com.intellij.rt.execution.application.appmain.main(appmain.java:147) 

your mocks mnetworkapi , mview never injected anywhere , hence stubbing

when(mnetworkapi.getmoviedetails("abcd")).thenreturn(observable.<moviedetails>just(moviedetails)); 

will never happen. since can't see source code moviedetailspresenter guessing lack of stubbing leads logic of onsupportnavigateup() method never being called. need make sure mocks included in mmoviedetailspresenter marking @injectmocks.

@injectmocks private moviedetailspresenter mmoviedetailspresenter; 

although can't 100% sure until see code more of classes.


Comments

Popular posts from this blog

neo4j - finding mutual friends in a cypher statement starting with three or more persons -

php - How to remove letter in front of the word laravel -

minify - Minimizing css files -