Jednotkový test: Devizový trh
Pojďme si procvičit vytváření a programování mocků v bankovním kontextu! Dopiš jednotkový test pro ExchangeApp, která
pracuje s Evropskou centrální bankou. Testuješ logiku convertEuroTo(), takže ji nemockuj. Namísto toho mockuj její závislost a ověř, jestli funguje správně!
Potřebné balíčky JUnit a Mockito jsou za tebe již naimportovány.
Toto cvičení je součástí kurzu
Úvod do testování v Javě
Pokyny k cvičení
- Vytvoř mock pro
EuropeanCentralBankServer. - Použij správnou syntaxi a naprogramuj mock tak, aby vracel
12345.0. - Ověř, že převod měny vrátí požadovaný výsledek.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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, ____);
}
}