Enhetstest: Undantag vid valutaväxling
Ett möjligt felscenario för valutaappen är att bankservern är otillgänglig på grund av ett avbrott eller nätverksproblem. För att hantera sådana störningar har du lagt till en try/catch inuti metoden convertEuroTo.
Simulera felscenariot genom att få mock-objektet EuropeanCentralBankServer att kasta ett undantag när en växelkurs efterfrågas.
Den här övningen är en del av kursen
Introduktion till testning i Java
Övningsinstruktioner
- Gör så att mock-bankobjektet kastar ett undantag när
getRateEuroToanropas. - Skapa det exakta undantagsobjekt som du vill simulera.
- Verifiera att metoden
convertEuroTointe kastar något undantag utan returnerar-1i det här scenariot.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
class Main {
public static void main(String[] args) {
launchMockitoTestsAndPrint(ExchangeAppTest.class);
}
}
class ExchangeAppTest {
@Test
void convertEuroTo_throwsException_whenBankUnavailable() {
EuropeanCentralBankServer bank = mock(EuropeanCentralBankServer.class);
ExchangeApp exchangeApp = new ExchangeApp(bank);
double euroAmount = 450;
// Stub the mock to throw an exception
when(exchangeApp.convertEuroTo("TST", 100)).____(new ____("Bank server is unavailable."));
double tstAmount = exchangeApp.convertEuroTo("TST", euroAmount);
// Assert on the return value of the method
____(____, ____);
}
}