Testování knihovních repositářů

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

Napsal jsem si jednu malou Repository třídu, kterou bych ale nechtěl mít jako přímou součást aplikace, ale spíše bych ji rád zařadil do jedné knihovny, kterou bych, podobně, jako Nette, zařadil do adresáře libs, popř. vendor. Celá třída má pak sloužit jako nadtřída pro aplikační repositáře v modelu aplikace a tyto repositáře pak budou injektovány do presenterů, kde pak už budou pouze volány metody těchto repositářů, jako např. $this->articleRepository->findById($id). Chtěl bych se zeptat, jak mohu funkčnost této třídy vyzkoušet, když je to vlastně knihovna a není součástí žádné aplikace?

Samotné aplikační repsitáře lze testovat v rámci dané aplikace, ale jak mohu otestovat ten knihovní repozitář, aniž bych pro něj musel konstruovat speciální aplikaci a tyto testy mít samozřejmě jako součást knihovny? Na githubu jsem si všiml, že Nette také neobsahuje testy např. pro \Nette\Database nebo \Nette\Application.

fary
Člen | 155
+
0
-

Je možné, že jsem tu otázku nespecifikoval dostatečně srozumitelně (což se mi často stává :-) ). Opravdu bych ocenil jakoukoli radu.

Tomáš Votruba
Moderator | 1114
+
0
-

Ad github, Nette bylo rozděleno na samostatné balíčky

Testy k Application najdeš v samostatném repositáři Nette\Application

Filip Procházka
Moderator | 4668
+
0
-

Je možné, že jsem tu otázku nespecifikoval dostatečně srozumitelně (což se mi často stává :-) ). Opravdu bych ocenil jakoukoli radu.

Možné to je. Stejně tak je možné že za ty 4 hodiny kdy jsi netrpělivě mačkal F5 se prostě nikdo nedostal k tomu aby ti v neděli odpoledne stihl odpovědět :)

Použij nette/tester a napiš testy k tvé knihovně. Na to nemusíš psát celou aplikaci. Pokud si to hodíš veřejně na github tak si navíc můžeš testy nechat pouštět přes Travis.

Nette obsahuje testy téměř na všechno, ale protože bylo nedávno rozděleno do více repozitářů, tak ty testy jsou v repozitářích do kterých patří. Tedy v repozitáři nette/nette toho moc nezbylo, protože je to jinde :)