Jak otestovat, že kód nevykonává víc věcí, než by měl

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Milanov
Člen | 51
+
0
-

Ahoj. Máme třídu, která dostane objednávku a službu na poslání e-mailů. Podle toho, v jakém je objednávka stavu a jaké má eventuálně položky, se vytvoří a odešle e-mail.

Dokážu krásně otestovat, jestli třída odesílá správné e-maily. Ale co když odesílá omylem i e-maily pro jiné stavy, pro které si to nepřeji?

Asi bych dokázal udělat objednávky ve všech stavech a vyzkoušet, že se nic nepošle. Ale ty kombinace přibývají s každou doručovací metodou, novým stavem atd. Určitě to není tedy správná cesta.

Jak na to tedy? Díky

Filip Klimeš
Nette Blogger | 156
+
+1
-

Napadá mě namockovat tu službu na posílání mailů a potom kontrolovat, kolikrát byla zavolána ta a ta metoda a s jakými parametry.
Zkus např. Mockery nebo Mockistu.

EDIT: aha, špatně jsem si to přečetl. Nicméně namockuj si i objednávky ve všech možných stavech, můžeš zkusit použít dataProvider. S rozšiřováním aplikace budeš muset rozšiřovat i testy, nevidím jinou cestu.

Editoval Filip Klimeš (11. 3. 2015 19:32)

Milanov
Člen | 51
+
0
-

Jo, data provider je dobrý nápad.