dagblog.
← Archiv

Stavové a interakční testování


Když jsem dnes ráno pročítal TSS narazil
 jsem na diskusi k článku Mocks Aren’t Stubs
 od Martina Fowlera, kterého považuji za, průkopníka a inovátora technik vývoje softwaru.

Při psaní unit testů potřebujete po otestovaní objektu (primární objekt) i další 
 sekundární objekty, které primární objekt využívá. Tyto sekundární objekty můžeme
 mockovat nebo stubovat. Mock nebo Stub objekt pak představuje sekundární objekt v 
 minimálním stavu nutném pro test primárního objektu.

Z mého pohledu představoval Mock to samé co Stub, s nepatrným rozdílem, že Mock objekty
 implementovaly rozhraní sekundárního objektu. Článek Martina Fowlera
 mě vyvedl z omylu. Myšlenka Mock objektů, které vycházejí z 
 XP (Extrémní programování) sahá do způsobu testování.

Mock objekty jsou určeny k interakčnímu testování, tedy interakce mezi primárním a
 sekundárním objektem na základě nějakého očekávání. Hojně používaný způsob testování 
 se nazývá stavový asi většina testů, které jste viděli, byla stavová. Stavové testování
 se odlišuje v tom, že se testuje výsledný očekávaný stav objektu např. hodnota x je
 50.

V článku je popsáno jak interakční tak stavové testování, jejich rozdíly a autorův 
 pohled na oba přístupy. Samozřejmě nechybí ani vysvětlení toho co představuje 
 Stub a Mock.

Verze na Medium

Související články

Související epizody CZ Podcastu