Kom igångKom igång gratis

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

Visa kurs

Övningsinstruktioner

  • Gör så att mock-bankobjektet kastar ett undantag när getRateEuroTo anropas.
  • Skapa det exakta undantagsobjekt som du vill simulera.
  • Verifiera att metoden convertEuroTo inte kastar något undantag utan returnerar -1 i 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
		____(____, ____);
    }
}
Redigera och kör kod