MulaiMulai sekarang secara gratis

Unit test: Pengecualian valuta asing

Salah satu skenario kesalahan yang mungkin pada aplikasi penukaran adalah server bank tidak tersedia karena gangguan atau masalah jaringan. Untuk mencegah pengecualian yang mengganggu, Anda telah menulis blok try/catch di dalam metode convertEuroTo.

Simulasikan skenario kesalahan dengan membuat objek mock EuropeanCentralBankServer melempar pengecualian saat sebuah kurs diminta.

Latihan ini adalah bagian dari kursus

Pengantar Pengujian di Java

Lihat Kursus

Petunjuk latihan

  • Buat objek mock bank melempar pengecualian ketika getRateEuroTo dipanggil.
  • Buat objek pengecualian persis seperti yang ingin Anda simulasikan.
  • Verifikasi bahwa metode convertEuroTo tidak melempar pengecualian, tetapi mengembalikan -1 dalam skenario ini.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

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
		____(____, ____);
    }
}
Edit dan Jalankan Kode