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.

(:source lang=Java -trim +getcode:) @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); }