Ich habe eine Methode eines verspotteten Objekts, das mehrfach aufgerufen werden kann (Think Recursion). Das Verfahren ist wie folgt definiert:Wie wird nur die Ausnahme ausgelöst, wenn die Mocked-Methode zum ersten Mal aufgerufen wird?
public void doCommit() { }
Um es zu sagen, ich diese Konvention verwenden fehlschlagen:
doThrow(new RuntimeException()).when(mMockedObject).doCommit();
Das aber macht die Methode diese Ausnahme jedes Mal werfen sie aufgerufen wird. Wie kann ich es so machen, dass es nur zum Beispiel das erste und dritte Mal, dass es aufgerufen wird, wirft? Das bedeutet, dass zum Beispiel beim zweiten und vierten Mal es einfach zurückkehrt, ohne eine Ausnahme zu werfen. Bitte beachten Sie, dass ich weder der Autor von doCommit() bin, noch Quellcode habe, den ich ändern kann.
Großartig, froh, dass ich dich in die richtige Richtung wies. –
mit 'BDDMockito' wäre es' willThrow (neue Runtime()) willNothing() willThrow (...) willNothing() gegeben (mMockedObject) .doCommit();.... ' – ArtB