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...
}