PHPUnit, mockování a factories
- chikeet
- Člen | 160
Zdravím,
začínám s testováním (PHPUnit) a řeším následující problém:
- v setUpu si vytvořím container
- testuju model, který získávám způsobem $container->createMyModel();
- model pracuje s db, kterou dostane v konstruktoru při vytvoření továrnou
Je možné nějak mockovat db, pokud získávám instanci modelu popsaným způsobem? Případně, je možné to řešit nějak inteligentněji? Za nakopnutí budu ráda. Mám v téhle oblasti zatím opravdu minimální rozhled.
NetteTester zatím používat nechci (potřebuju se naučit testovat způsobem, který bude použitelný i pro projekty bez Nette) a nějaký větší refaktoring nebo upgrade na novější verzi Nette u dotyčného projektu zatím není v plánu.
- Filip Klimeš
- Nette Blogger | 156
chikeet napsal(a):
Zdravím,
začínám s testováním (PHPUnit) a řeším následující problém:
- v setUpu si vytvořím container
- testuju model, který získávám způsobem $container->createMyModel();
- model pracuje s db, kterou dostane v konstruktoru při vytvoření továrnou
Je možné nějak mockovat db, pokud získávám instanci modelu popsaným způsobem? Případně, je možné to řešit nějak inteligentněji? Za nakopnutí budu ráda. Mám v téhle oblasti zatím opravdu minimální rozhled.
NetteTester zatím používat nechci (potřebuju se naučit testovat způsobem, který bude použitelný i pro projekty bez Nette) a nějaký větší refaktoring nebo upgrade na novější verzi Nette u dotyčného projektu zatím není v plánu.
S PHPUnit zkušenosti nemám, ale Nette Tester můžeš používat i bez
Nette :) stačí si ho stáhnout
nebo nainstalovat přes composer
composer require --dev nette/tester 1.1
Modely se obecně dají mockovat přes Mockery, nebo sympatičtějšího Mockistu (kromě jiných). Takže si místo $container->createMyModel() vytvoříš mock, kterému nastavíš funkce a jejich návratové hodnoty.
Editoval FilipKlimeš (23. 4. 2014 21:46)