Модульний тест: винятки у валютному обміні
Один із можливих сценаріїв помилки для застосунку обміну валют — недоступність банківського сервера через збій або проблеми з мережею. Щоб убезпечитися від руйнівних винятків, ви додали блок 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
____(____, ____);
}
}