Cet article vous présente principalement le processus de résolution de l'erreur de fonction old() dans phpUnit dans les tests unitaires laravel. L'article le présente en détail à travers l'exemple de code. Il a une certaine valeur d'apprentissage de référence pour l'étude ou le travail de chacun. est nécessaire Amis, veuillez suivre l'éditeur pour apprendre ensemble.
Préface
Je faisais des tests unitaires Laravel récemment, j'ai rencontré un problème :
Lors de l'utilisation de old()
An. une erreur sera signalée lors de l'exécution de la fonction. Il n'y a pas de problème avec l'accès normal à l'url, mais une erreur sera signalée dans phpUnit
Raison de l'erreur :
exception 'RuntimeException' with message 'Session store not set on request.' in /Users/lei/Sites/goodstyle/vendor/laravel/framework/src/Illuminate/Http/Request.php:870
C'est évidemment la raison pour laquelle. la session n'est pas ouverte car elle est épuisée, mais phpUnit est configuré par Laravel lui-même, donc j'étais très confus, alors j'ai vérifié le code source
Processus de solution
Session ouverte (app/Http/kerner)
Évidemment j'ai ouvert la session, mais j'ai trouvé le code de mon test unitaire et j'ai découvert que j'avais ouvert cet extrait de code
Ignorer les restrictions du middleware
Parce que ce code J'ai empêché ma session de s'ouvrir, j'étais intelligent et j'ai été trompé. Au départ, je voulais utiliser cette méthode sans écrire de middleware, mais je me suis laissé prendre par elle-même. Ensuite, je suis allé sur ce code, j'ai réécrit la logique et il s'est exécuté. normalement
Résumé
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!