НачатьНачать бесплатно

Модульный тест: рынок иностранной валюты

Попрактикуемся в создании и настройке моков в банковском контексте! Допишите модульный тест для 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, ____);
    }
}
Редактировать и запускать код