Ho un problema quando si scrive test di unità con simulazione. C'è un oggetto che ho bisogno di prendere in giro con un sacco di getter, che li chiamo al codice. Tuttavia, quelli non sono lo scopo del mio test unitario. Quindi, c'è un modo per prendere in giro tutti i metodi invece di prenderli in giro uno alla volta.Mockito mock tutti i metodi chiamano e restituiscono
Ecco l'esempio di codice:
public class ObjectNeedToMock{
private String field1;
...
private String field20;
private int theImportantInt;
public String getField1(){return this.field1;}
...
public String getField20(){return this.field20;}
public int getTheImportantInt(){return this.theImportantInt;}
}
e questa è la classe di servizio ho bisogno di testare
public class Service{
public void methodNeedToTest(ObjectNeedToMock objectNeedToMock){
String stringThatIdontCare1 = objectNeedToMock.getField1();
...
String stringThatIdontCare20 = objectNeedToMock.getField20();
// do something with the field1 to field20
int veryImportantInt = objectNeedToMock.getTheImportantInt();
// do something with the veryImportantInt
}
}
all'interno della classe di test, il metodo di prova è come
@Test
public void testMethodNeedToTest() throws Exception {
ObjectNeedToMock o = mock(ObjectNeedToMock.class);
when(o.getField1()).thenReturn(anyString());
....
when(o.getField20()).thenReturn(anyString());
when(o.getTheImportantInt()).thenReturn("1"); //This "1" is the only thing I care
}
Quindi, c'è un modo per evitare di scrivere tutti i "quando" per l'inutile "campo1" a "campo20"
Non è per se stai bene con il ritorno di loro nulla. –
Ho bisogno di usarli nel metodo, mi dispiace per non inserire questo nell'esempio. – jasonfungsing