Ho un controller che, dopo la presentazione di una e-mail, effettua un redirect alla home, in questo modo:laravel - Testing ciò che accade dopo un reindirizzamento
return Redirect::route('home')->with("message", "Ok!");
scrivo i test per esso, e io non sono sicuri come fare PHPUnit per seguire il reindirizzamento, per testare il messaggio di successo:
public function testMessageSucceeds() {
$crawler = $this->client->request('POST', '/contact', ['email' => '[email protected]', 'message' => "lorem ipsum"]);
$this->assertResponseStatus(302);
$this->assertRedirectedToRoute('home');
$message = $crawler->filter('.success-message');
// Here it fails
$this->assertCount(1, $message);
}
Se io sostituire il codice sul controller per questo, e rimuovere il primo 2 afferma, funziona
Session::flash('message', 'Ok!');
return $this->makeView('staticPages.home');
Ma mi piacerebbe usare lo Redirect::route
. C'è un modo per rendere PHPUnit per seguire il reindirizzamento?
Questa funzione è stata rimossa da laravel> = 5.4.12 e puoi utilizzare [questo] (https://github.com/laravel/framework/issues/18016) soluzione alternativa. –