Enhetstester kmom03 mvc, controller utan interface

  • Författare
  • Meddelande

richard_st

html-kodare

  • Inlägg: 15
  • Blev medlem: 26 aug 2019, 05:23

Enhetstester kmom03 mvc, controller utan interface

Inlägg15 apr 2021, 22:30

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;
}
}
Användarvisningsbild

mos

dbwebb

  • Inlägg: 11199
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: Enhetstester kmom03 mvc, controller utan interface

Inlägg19 apr 2021, 17:02

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
...
..:
.... /mos

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 26 gäster