Jak jednotkové interakční testování funguje?

Při jednotkovém interakčním testování se zaměřujeme na interakce testovaného objektu s jeho sousedy. Testy píšeme tak, že vyvoláme testovanou metodu našeho doménového objektu a sledujeme jeho interakci s ostatními objekty. Na tyto interakce můžeme klást různé požadavky v podobě očekávání (expectations), která verifikujeme a zjišťujeme tak, byl-li test úspěšný či nikoliv.

Jestliže vyvíjíme metodou TDD, tedy píšeme testy dříve než testovaný kód, často využíváme metodu programování do rozhraní. Pomocí tohoto způsobu vývoje jsme potom schopni klást požadavky na doménový kód před tím, než jej implementujeme. To nás nutí přemýšlet nad architekturou tříd dříve než nad jejich implementací, a umoňuje nám tak vytvářet tento kód kvalitnější a návrh čistší.

Příkladem může být naše rozhodnutí, že metoda userManager.containsUser() je úspěšná v případě, že její implementace volá metodu getUserDao().getUserByUsername(). Toto je rozhodnutí návrhu, které uděláme při vývoji objektu typu UserManager o implementaci jeho metody. Pokud implementace rozhraní UserDao ještě tuto metodu neobsahuje, náš test nebude úspěšný. My ovšem nezačneme vyvíjet tuto novou vlastnost, protože by to mohlo vést k řetězci implementací dalších nových funkcí, což by zabrzdilo vývoj naší testované třídy. My tento objekt nahradíme jeho modelem v podobě mock objektu a nastavíme ho tak, že tento objekt bude vědět, zda-li jeho metoda getUserByUsername() je volána v případě testování metody containsUser().

Ve zkratce řečeno, při jednotkovém interakčním testování nahrazujeme všechny sousedy námi testovaného objektu našimi mock objekty. Tyto objekty sledují a verifikují, zda-li byly volány jejich metody tak, jak očekáváme a nahrazují všechny vlastnosti těch sousedů, které náš testovaný objekt potřebuje.

Komentáře

Téma neobsahuje žádné komentáře.

Vložit komentář

Můžete používat značkovací jazyk Texy!


Jméno:
E-mail:
Url:
Komentář:
1 + 2 =
 
MoroSystems, s.r.o.