Модульний тест: Ринок іноземної валюти
Потренуймося створювати й програмувати макети в банківському контексті! Завершіть модульний тест для ExchangeApp, який
використовує Європейський центральний банк. Оскільки ви тестуєте логіку convertEuroTo(), не макетуйте її. Натомість змакетуйте її залежність, щоб перевірити, чи все працює коректно!
Необхідні пакети JUnit і Mockito вже імпортовано.
Ця вправа є частиною курсу
Вступ до тестування в Java
Інструкції до вправи
- Створіть макет для
EuropeanCentralBankServer. - Використайте правильний синтаксис, щоб запрограмувати макет повертати
12345.0. - Перевірте, що конвертація валюти повертає потрібний результат.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
class Main {
public static void main(String[] args) {
launchMockitoTestsAndPrint(ExchangeAppTest.class);
}
}
class ExchangeAppTest {
@Test
void convertEuroTo_convertsTST() {
// Create a mock object for the EuropeanCentralBankServer
EuropeanCentralBankServer bank = ____(EuropeanCentralBankServer.class);
ExchangeApp exchangeApp = new ExchangeApp(bank);
double euroAmount = 100;
// Stub the mock to return a value for given input
____(exchangeApp.convertEuroTo("TST", 100)).____(12345.0);
double tstAmount = exchangeApp.convertEuroTo("TST", euroAmount);
System.out.println("Converted " + euroAmount + " EUR to " + tstAmount + " TST.");
// Assert on the exact expected value of tstAmount
____(1234500, ____);
}
}