Sida 1 av 1

Enhetstester kmom03 mvc, controller utan interface

InläggPostat: 15 apr 2021, 22:30
av richard_st
Hej,

Jag håller på att skriva enhetstester för kmom03 i mvc-kursen. Jag har ett antal post-routes med tillhörande controllers. Inom dessa controllers kan man inte köra assertInstanceOf() och undersöka om invoke-metoden returnerar ett response med ett interface. Detta då de inte returnerar något utan endast gör en redirect till en get-route. Min fundering har varit om det går att testa för redirect, men jag har sökt runt och hittar ingen bra information mer än att det går att göra i Laravel, vilket vi inte använder. Tänker jag rätt med att testa för redirect, och i sådana fall hur går man tillväga? Eller finns det andra alternativ?

Exempel på controller-klass som används i post-route:

/**
* Controller for processing computer play.
*/
class PostComputerPlay
{
public function __invoke(): void
{
$_SESSION["game"]->computerPlay();
redirectTo(url("/results"));
return;
}
}

Re: Enhetstester kmom03 mvc, controller utan interface

InläggPostat: 19 apr 2021, 17:02
av mos
Du bör inte göra redirect i en controller-metod (det blir svårtestat).
Du bör returnera ett response, som kan vara ett redirect-response.
https://github.com/dbwebb-se/mvc/blob/m ... hp#L39-L41