Questo è dal Tutorial JMockit ufficiale:JMockit come risultato più eccezioni per il metodo di chiamata
@Test
public void doSomethingHandlesSomeCheckedException() throws Exception
{
new Expectations() {
DependencyAbc abc;
{
abc.stringReturningMethod();
returns("str1", "str2");
result = new SomeCheckedException();
}
};
new UnitUnderTest().doSomething();
}
E 'possibile affermare il contrario, vale a dire più risultati e uno di ritorno - ho bisogno di buttare 2 eccezioni e solo quindi restituire un buon valore. Qualcosa di simile a questo è ciò che Im che cerca:
abc.stringReturningMethod();
returns(new SomeCheckedException(), new SomeOtherException(),"third");
Questo non funziona, non può lanciare JMockit tali eccezioni a String
(che è il tipo di ritorno di stringReturningMethod
)
Non imposterà il risultato per tutte e tre le chiamate come 'terzo'? – Queequeg
No. Registrerà tre risultati consecutivi per 'stringReturningMethod()'. (Un "risultato" è un valore da restituire, un'eccezione da lanciare o un "delegato" da eseguire. JMockit riscrive automaticamente questi incarichi come invocazioni ai suoi metodi interni, ecco perché funziona.) –
Questo non funziona. Devi fare 'result = new SomeCheckedException(); risultato = new SomeOtherException(); rendimenti ("non fa eccezione-String-valore"); ' – searchengine27