Unit test: Ngoại lệ khi quy đổi ngoại tệ
Một kịch bản lỗi có thể xảy ra với ứng dụng quy đổi là máy chủ ngân hàng không khả dụng do sự cố hoặc vấn đề mạng. Để tránh ngoại lệ gây gián đoạn, bạn đã viết try/catch bên trong phương thức convertEuroTo.
Hãy mô phỏng kịch bản lỗi bằng cách khiến đối tượng mock EuropeanCentralBankServer ném ra một ngoại lệ khi có yêu cầu lấy tỷ giá.
Bài tập này là một phần của khóa học
Nhập môn Kiểm thử trong Java
Hướng dẫn bài tập
- Khiến đối tượng mock của ngân hàng ném ra ngoại lệ khi
getRateEuroTođược gọi. - Tạo đúng đối tượng ngoại lệ bạn muốn mô phỏng.
- Xác minh phương thức
convertEuroTokhông ném ngoại lệ mà trả về-1trong kịch bản này.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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
____(____, ____);
}
}