4it101»J Unit 18

J Unit 18

Asertace shody s tolerancí

Při asertaci shody s tolerancí jde o totožný princip porovnávání jako v případě asertace shody. Rozdílem ale je, že asertáce shody s tolerancí nepožaduje absolutní rovnost porovnávaných objektů, respektive rovnost konstanty a objektu. To je vhodné pro případy, kdy není nutně nezbytné ověřovat absolutní shodu a je tak možná akceptace ve formě rozdílu porovnávaných hodnot v určených intencích, které jsou stanoveny parametrům delta v metodě assertEquals(). V následujícím příkladu dochází k ověření výpočtu DPH v objednávce. Přirozeně je možné očekávat práci s čísly s mnoha desetinnými místy, které ale po určité hodnotě ztrácejí význam. Proto je tedy možné, v odůvodněných případech, přistoupit k akceptaci jisté míry tolerance mezi srovnávanými hodnotami.


@Test
public void testAsertacia5() {
    Objednavka objednavka = new Objednavka(123);
    Polozka polozka1 = new Polozka("název", 456);
    polozka1.setCena(15.99);
    objednavka.pridejPolozku(polozka1);
    Polozka polozka2 = new Polozka("název", 789);
    polozka2.setCena(22.95);
    objednavka.pridejPolozku(polozka2);

    //skutecny vysledek je 3.894,
    //pri nastavene toleranci 0.004 test skonci uspesne
    assertEquals(3.89, objednavka.getDPH(), 0.004);
}