Testování HttpRequest & HttpResponse

- zakjan
- Člen | 9
Mám presenter, který se chová jako RESTfull API. Při většině dotazů kontroluje nastavené HTTP hlavičky (autorizační klíč, použitá verze API), při odpovědí občas změní stavový kód třeba na 400 a někdy odešle další HTTP hlavičky.
Jakým způsobem můžu takový presenter funkčně otestovat? (PHPUnit)
S odpovědí jsem si poradil díky použití vlastního
ApiResponse extends JsonResponse, který podobně jako
RedirectingResponse obsahuje stavový kód a hlavičky ke
změnění, ty jdou testovat, a pošle je až v metodě send.
Pro vytváření požadavků jsem nejdřív používal
Application\Request podle https://tester.nette.org/cs/#…
, ale to mi neumožňuje vložit vlastní HTTP hlavičky.
Nejspíš musím vytvořit vlastní Http\Request, jakým
způsobem ho pak mám jednoduše aplikaci vnutit?
Nebo máte už někdo elegatní funkční postup na tento problém?

- Filip Procházka
- Moderator | 4668
V API je stále v konstruktoru container, takže z toho budu vycházet, uprav si to pro svoji verzi Nette.
$context = clone Nette\Environment::getContext();
$context->removeService('httpRequest');
$context->httpRequest = new Nette\Http\Request(...);
$presenter = new ApiPresenter($context);

- Filip Procházka
- Moderator | 4668
Ne.
try {
$presenter = new ApiPresenter($context);
} catch (\Exception $e) {
$this->assert...
}