단위 테스트: 환율 변환 예외 처리
이 환율 변환 앱에서 발생할 수 있는 오류 시나리오 중 하나는 장애나 네트워크 문제로 은행 서버를 사용할 수 없는 경우입니다. 예기치 않은 예외로 인한 중단을 방지하기 위해 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
____(____, ____);
}
}