Wie doNothing() auf void-Methode?
Habe ich eine Methode, die den Aufruf einer void-Funktion in es, und wenn ich doNothing()
sagt er, dass void-Methode ist es nicht erlaubt. Wie könnte ich doNothing()
in dieser bestimmten Zeile?
Ich bin mit dieser Linie,
when(spyColorSelector.initializeColors(view, "red")).then(doNothing());
Ist, dass die vollständige Zeile, oder wollen Sie etwas zurückgeben?
Ich will einfach nur, dass initializeColors(), nicht ausgeführt
Wenn Sie möchten, dass das passiert? Warum nicht verwenden Sie einen wenn-block?
Ich will einfach nur, dass initializeColors(), nicht ausgeführt
Wenn Sie möchten, dass das passiert? Warum nicht verwenden Sie einen wenn-block?
InformationsquelleAutor Jimmy A. León | 2015-07-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Stubber syntax :
Sowie
spyColorSelector
hat ein mock.Edit 1: code-Beispiel mit Spion.
Dieser test funktioniert (keine Ausnahme, die ausgelöst durch
initializeColors
) mit JUnit 4.12 und Mockito 1.10.19:Edit 2: neues Beispiel ohne spy.
Wenn Sie wirklich wollen
initializeColors
nicht ausgeführt werden in dem test, ich denke, es ist ein design-Problem in derColorSelector
Klasse. DieinitializeColors
Methode in einer anderen Klasse X, und es wäre eine Abhängigkeit von der Klasse X inColorSelector
Klasse, die Sie stub die in den test - (und dann keine Notwendigkeit von Spion). Einfaches Beispiel:Wie wollen Sie initialisieren Sie Ihre mock? Könnte Sie kopieren und einfügen Ihre ganze test?
@Test public void testGetColors(){ View view = mock(View.class); doNothing().when(spyColorSelector).initializeColors(eq(view), eq("red")); LinkedList<Integer> colors = spyColorSelector.getColors("red", view); assertNotNull(colors); }
initializeColors() ist innerhalb getColors () - MethodeOk. Ich werde diese schnellstmöglich beantworten. Und wie ist Ihre spyColorSelector initialisiert in der test-Klasse?
ColorSelector spyColorSelector = spy(colorSelector);
InformationsquelleAutor Damien Beaufils