시작하기무료로 시작하기

단위 테스트: 환율 변환 예외 처리

이 환율 변환 앱에서 발생할 수 있는 오류 시나리오 중 하나는 장애나 네트워크 문제로 은행 서버를 사용할 수 없는 경우입니다. 예기치 않은 예외로 인한 중단을 방지하기 위해 convertEuroTo 메서드 내부에 try/catch를 구현해 두었습니다.

이 오류 시나리오를 모의하기 위해, 모의 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
		____(____, ____);
    }
}
코드 편집 및 실행