Bonjour,

Je test laravel et je suis en train de mettre en place des tests unitaires pour un service de gestion multi-sites.

Actuellement, lorsque je lance la commande suivante dans un test unitaire (même si c'est plus vraiment unitaire à ce niveau :p ) :

$this->call('GET', '/');

Et que j'essaye récupère le host, c'est "localhost" qui prend le relais.

Mon problème est que je souhaiterais, faire la même commande, mais avec un host différent dans mes tests unitaires. Par exemple : www.ndd.local

Hors, je n'y parviens pas :(

Néanmoins, dans le navigateur, ce host est bien récupéré.
D'ailleurs toutes les command en console de laravel font appel à "localhost".

Seriez-vous comment forcer un NDD différents dans les tests unitaires ?

Merci d'avance

5 réponses


Bonsoir.
Tu pourrais peut-être utiliser ce qui s'appelle le Sub-Domain Routing, voir ici : Route Groups, tu descends un peu plus puis tu trouveras le titre que j'ai cité plus haut.

nickleus
Auteur

Ok merci,

je vais regarder de ce coté

nickleus
Auteur

Re bonjour,

J'ai donc essayé plusieurs choses sans grand succès :(

Car en ligne de commande, c'est localhost qui est envoyé par défaut. Il faudrait faire un mock de "request" mais d'après Laravel c'est une très mauvaise idée.

Savez-vous s'il est possible dans changer les paramètre de la requête dans les tests unitaire ?

Merci d'avance :)

Il faut modifier un des fichiers de configs qui définit le domaine pour les tests unitaires il me semble ;)

nickleus
Auteur

J'ai déjà essayé de modifier l'url dans "app.url" qui est pas défaut "http://localhosté, mais lorsque je fais un getHost() (dans un script middleware) de l'objet Request, cela me retourne toujours "localhost".

De plus, comme que je suis sur un projet de gestion de multiple sites, je ne souhaiterai pas faire la modif dans les fichiers de config, mais plus dans la méthode setUp().

Mais je ne déspère pas :)