Comment tester POST routes dans Laravel
Je suis en train de faire le suivant pour tester un appel POST Laravel. Je m'attends à ce que la POSTE à des questions, en conformité avec mes itinéraires, sera distribue que le magasin de la méthode d'action. Cela fonctionne dans le navigateur.
Mon test:
public function setUp()
{
parent::setUp();
Session::start();
}
public function testStoreAction()
{
$response = $this->call('POST', 'questions', array(
'_token' => csrf_token(),
));
$this->assertRedirectedTo('questions');
}
Cependant, je me dit que la redirection ne correspond pas. Aussi, je peux voir que ce n'est pas de passer à la boutique de la méthode d'action. Je veux savoir quelle méthode d'action il va, et pourquoi il ne va pas à la méthode de magasin (si je regarde la route:liste je peux voir il y a un POST des questions/itinéraire qui devrait aller à des questions.magasin; cela fonctionne aussi dans le navigateur, mais pas dans mes tests). Aussi, suis-je écrire à l'appel correctement pour cette ressource? J'ai ajouté le jeton qu'elle était de lancer une exception comme il se doit, dans certains tests, je vais laisser le jeton de vérifier passer.
Il est peu probable que vos paramètres POST ne sont que le jeton csrf. Probablement dans votre controller, vous avez une sorte de validation de la demande de rediriger les requêtes vers l'emplacement précédent (302 code de réponse). Vous pouvez vérifier si c'est le cas, par le débogage de la session avec
dd(Session::get('errors'))
OriginalL'auteur Martyn | 2015-03-01
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer ceci:
OriginalL'auteur Daniel Ojeda
Le plus recommandé pour tester vos itinéraires est de vérifier pour
200
réponse. Ceci est très utile lorsque vous avez plusieurs tests, comme vous archivez tous vospost
itinéraires à la fois.Pour ce faire, il suffit d'utiliser:
OriginalL'auteur Raviraj Chauhan