ПочатиПочніть безкоштовно

Модульний тест: винятки у валютному обміні

Один із можливих сценаріїв помилки для застосунку обміну валют — недоступність банківського сервера через збій або проблеми з мережею. Щоб убезпечитися від руйнівних винятків, ви додали блок try/catch всередині методу convertEuroTo.

Змоделюйте цей сценарій помилки, змусивши мок-об'єкт EuropeanCentralBankServer кидати виняток під час запиту курсу.

Ця вправа є частиною курсу

Вступ до тестування в Java

Переглянути курс

Інструкції до вправи

  • Змусьте мок-об'єкт банку кидати виняток під час виклику getRateEuroTo.
  • Створіть саме той об'єкт винятку, який хочете змоделювати.
  • Перевірте, що метод convertEuroTo не кидає виняток, а в цьому сценарії повертає -1.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

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
		____(____, ____);
    }
}
Редагувати та запускати код