Enhetstest: Valutamarknaden
Nu är det dags att öva på att skapa och programmera mock-objekt i ett banksammanhang! Slutför enhetstestet för ExchangeApp, som
använder Europeiska centralbanken. Eftersom du testar logiken i convertEuroTo(), ska du inte mocka den. Mocka i stället dess beroende så att du kan kontrollera att den fungerar korrekt!
Nödvändiga paket från JUnit och Mockito har redan importerats.
Den här övningen är en del av kursen
Introduktion till testning i Java
Övningsinstruktioner
- Skapa ett mock-objekt för
EuropeanCentralBankServer. - Använd rätt syntax för att programmera mock-objektet så att det returnerar
12345.0. - Verifiera att valutakonverteringen returnerar det förväntade resultatet.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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, ____);
}
}