Ho un metodo di un oggetto deriso che può essere chiamato più volte (si pensi alla ricorsione). Il metodo è definito in questo modo:Come lanciare un'eccezione solo quando viene chiamato per la prima volta il metodo mocked?
public void doCommit() { }
Per raccontarla a fallire io uso questa convenzione:
doThrow(new RuntimeException()).when(mMockedObject).doCommit();
questo, però, rende il metodo lanciare questa eccezione ogni volta che viene chiamato. Come posso fare in modo che solo, ad esempio, lo lanci la prima e la terza volta che viene chiamato? Ciò significa che, ad esempio, la seconda e la quarta volta torna indietro senza generare un'eccezione. Si prega di notare che io non sono l'autore di doCommit(), né ho il codice sorgente che posso modificare.
Grande, felice di averti indicato nella giusta direzione. –
con 'BDDMockito' sarebbe' willThrow (new RuntimeException()). WillNothing(). WillThrow (...). WillNothing(). Given (mMockedObject) .doCommit(); ' – ArtB