Uso la molla nella mia applicazione e voglio scrivere test unitari per tutte le mie classi. Chiaro alcuni servizi web esterni dalla mia applicazione e voglio prenderli in giro usando Mockito poiché voglio solo testare la mia funzionalità.Utilizzo di annotazioni Mockito con molla
Diciamo che ho il seguente scenario
Questa è la mia interfaccia webservice
public interface MyWebService {
public String getSomeData(int id);
}
uso il servizio di cui sopra in questo modo
public interface MyService {
int doSomethingElse(String str);
}
public class MyServiceImpl implements MyService {
private MyWebService myWebService;
int doSomethingElse(String str) {
.....
myWebService.getSomeData(id);
...
}
}
public interface MyService1 {
Stirng methodToBeTested();
}
public class Class1 implements MyService1{
@Resource
private MyService myService;
public Stirng methodToBeTested() {
myService.doSomethingElse("..");
}
}
ho scritto il banco di prova uint come di seguito. Sto spiando MyService qui per eseguire il test unitario.
public class class1Test {
@Spy
MyService myService;
@Resource
@InjectMocks
Class1 class1;
public void setUPTest() {
MockitoAnnotations.initMocks(this);
Mockito.doReturn(123).when(myService).doSomethingElse("someString");
}
@Test
public void methodToBeTestedTest() {
this.setUPTest();
...
class1.methodToBeTested();
}
}
Quando eseguo il test, quello che vedo è che, ottengo il valore dal webservice invece di quello che ho già detto, mentre lo sradicamento.
Qualcuno può aiutarmi con questo? (. E utile per esempio affermare la presenza o l'assenza di metodo transitiva invocazioni)
Vedi anche http://stackoverflow.com/questions/2457239/injecting-mockito-mocks-into-a-spring-bean – Vadzim