Klasse unter Test spöttisch:Mockito den Wert einer Methode
class FruitQuality {
void testQuality() {
getfruits();
//some code
}
List<Fruits> getfruits() {
return orange;
}
}
Unten ist der Testcode. Ich verspottete die zu testende Klasse und übersteuerte einen Rückgabewert für die Methode getfruits. Aber wenn ich den Mock ausführe, bekomme ich nicht den erwarteten verspotteten Rückgabewert. Easymock kann Rückgabewerte für Methoden der zu testenden Klasse ersetzen, wenn diese ausdrücklich gemockt werden. Wie kann ich den verspotteten Rückgabewert erhalten, wenn ich die reale Objektmethode vortäusche?
@Test
public void test() {
Fruits fruit= new Fruits();
fruit.setFruit("orange");
List<Fruits> fruitsList = new ArrayList<Fruits>();
fruitsList.add(fruit);
Fruits mock = Mockito.mock(FruitQuality.class)
classUnderTest = new FruitQuality();
when(mock.getfruits()).thenReturn(fruitsList);
result= classUnderTest.getfruits();
assertEquals(result, fruitsList);
}
ist unser assertEquals korrekt? Es ruft nach 'result', aber es gibt keine Variable 'result'. – schneida
Warum verspotten Sie die getestete Klasse? Üblicherweise spottet man die Abhängigkeiten der zu testenden Klasse –
Bitte stellen Sie sicher, dass Ihr Code etwas echten Java-Code ist, Ihre 'getfruits()' Methode liefert zwei Werte mit zwei 'return' Anweisungen. Das gibt es in Java nicht ... – schneida