ユニットテスト:外国為替市場
銀行業務の文脈で、モックの作成とプログラミングを練習しましょう! ヨーロッパ中央銀行を利用する 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, ____);
}
}