單元測試:外匯市場
來練習在銀行情境中建立與設定模擬物件吧!請完成 ExchangeApp 的單元測試;它會使用 European Central Bank。因為你要測試的是 convertEuroTo() 的邏輯,所以不要模擬它。本次要模擬的是它的相依物件,這樣你就能檢查該邏輯是否正確運作!
所需的 JUnit 與 Mockito 套件都已為你匯入。
本練習屬於課程
Java 測試入門
練習說明
- 為
EuropeanCentralBankServer建立一個模擬物件(mock)。 - 使用正確語法將模擬物件設定為回傳
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, ____);
}
}