Lorsque vous réalisez des tests unitaires sur Laravel, il est parfois très utiles (voir nécessaire) de réaliser des mock, c'est à dire de simuler la réponse d'une fonction. Ainsi, vous pouvez fixer la valeur retourné par une fonction pour établir les tests qui en découle.

Laravel utilise la librarie Mockery pour établir des mock de vos classes.

Malheureusement, la multiplication des mocks peut parfois découler sur l'erreur suivante :

Could not load mock App\Models\YourClass, class already exists

Une astuce toute simple permet de résoudre cette problématique. Il vous suffit de rajouter les lignes de commentaires suivantes au dessus de la déclaration de votre fonction de test :

/**
 * @runInSeparateProcess
 * @preserveGlobalState disabled
 */

Elle permet d'isoler l'exécution des tests et d'éviter les effets de bords lié à l'utilisation de Mockery.

Bon tests unitaires !

Besoin d'aide pour votre projet Web ?

  • Création de sites internet
  • Référencement naturel (SEO)
  • Développement d'application Web
  • Développeur Laravel / VueJS
paper-plane