Des Versuch, einen einfachen Unit-Test mit Mockito zu schreiben:Mockito anyBoolean() Matcher Ausnahme bei der Rückkehr
@Test
public void toggleBlockingControlTest_turnOff() {
when(mainViewPresenter.getAppSettingsStorage().loadBlockingStatus())
.thenReturn(Mockito.anyBoolean());
AppSettingsStorage appSettingsStorage = mainViewPresenter.getAppSettingsStorage();
boolean statusBefore = appSettingsStorage.loadBlockingStatus();
Mockito.verify(appSettingsStorage).saveBlockingStatus(Mockito.eq(!statusBefore));
}
In Runtime i org.mockito.exceptions.misusing.InvalidUseOfMatchersException bekam: bei dieser Zeichenfolge:
.thenReturn(Mockito.anyBoolean());
Ich bin neu in Mockito und kann nicht verstehen, warum dieses Framework keine boolean ???
Wenn Sie kümmern sich nicht, welchen Wert der verspottete 'loadBlockingStatus()' gibt (und das ist * nicht *, was 'anyBoolean()' ist für), gibt es keinen Punkt, es spezifiziert - das Mock würde standardmäßig "false" zurückgeben (in Ihrem Fall müssten Sie sicherstellen, dass Sie das Flag "RETURNS_DEEP_STUBS" setzen). Ist 'mainViewPresenter' sogar ein Mock? Sie sollten etwas mehr Umgebungscode einbeziehen und den vollständigen Stack-Trace hinzufügen. Es sieht so aus, als ob Sie sich über die Klasse lustig machen, die Sie testen möchten - was den Zweck des Tests im Wesentlichen zunichte macht. – kryger
Tnx für die Antwort - ich denke, ich habe ein konzeptionelles Missverständnis dieser Testalgo. Ich interessiere mich wirklich nicht dafür, Boolean zurückzugeben .... –