Test jednostkowy: rynek walutowy
Ćwiczmy tworzenie i programowanie mocków w kontekście bankowym! Uzupełnij test jednostkowy dla ExchangeApp, który korzysta z Europejskiego Banku Centralnego. Testujesz logikę convertEuroTo() – nie mockuj jej. Zamiast tego zamockuj jej zależność, żeby sprawdzić, czy działa poprawnie!
Niezbędne pakiety JUnit i Mockito zostały już zaimportowane.
To ćwiczenie jest częścią kursu
Wprowadzenie do testowania w Javie
Instrukcje do ćwiczenia
- Utwórz mock dla
EuropeanCentralBankServer. - Użyj właściwej składni, aby zaprogramować mock tak, by zwracał
12345.0. - Sprawdź, czy konwersja walut zwraca oczekiwany wynik.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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, ____);
}
}