国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Table des matières
Pourquoi avez-vous besoin de dépendances simulées?
Comment se moquer de la fa?ade correctement?
Plus naturel avec Mockery et PHPUnit
Notes et erreurs communes
Maison cadre php Laravel Dépenses et fa?ades moqueuses dans les tests Laravel

Dépenses et fa?ades moqueuses dans les tests Laravel

Jul 12, 2025 am 03:18 AM

Les dépendances et les fa?ades moqueurs peuvent améliorer l'efficacité des tests de Laravel et réduire les effets secondaires, car l'exécution réelle des ressources externes rendra le test lent, instable et difficile à contr?ler l'état; La bonne fa?ade de simulation doit utiliser la fa?ade :: aitseive () au lieu de la simulation d'instance ordinaire; Combiné avec des moqueries peut rendre la syntaxe plus concise et intuitive, mais vous devez faire attention au nettoyage de l'état, en évitant des problèmes de moquerie excessive et de correspondance des paramètres.

Dépenses et fa?ades moqueuses dans les tests Laravel

Dans les tests de Laravel, les dépendances et les fa?ades moqueurs sont des moyens importants pour améliorer l'efficacité des tests et réduire les effets secondaires. L'appel directement des services réels ou des interfaces externes entra?nera le ralentissement des tests ou même l'échec, tandis que la technologie simulée peut simuler ces comportements, ce qui rend le test plus axé sur la logique elle-même.

Dépenses et fa?ades moqueuses dans les tests Laravel

Pourquoi avez-vous besoin de dépendances simulées?

Les applications Laravel reposent souvent sur des ressources externes telles que les opérations de base de données, le traitement des files d'attente, les appels d'API tiers, etc. Si ces logiques sont réellement exécutées dans le test:

Dépenses et fa?ades moqueuses dans les tests Laravel
  • Les tests ralentiront
  • Des facteurs d'instabilité peuvent être introduits (comme les problèmes de réseau)
  • L'état de la base de données est difficile à contr?ler

à l'heure actuelle, vous devez vous moquer de ces dépendances pour le faire renvoyer les résultats que nous attendons. Par exemple:

 // Supposons qu'il y ait un service de paiement qui est injecté dans le contr?leur $ mock = Mockery :: Mock (PaymentService :: Class);
$ mock-> omméreive ('charger') -> anTreturn (true);

$ this-> instance (PaymentService :: Class, $ mock);

Cela garantit que charge renvoie toujours vrai sans lancer réellement une demande de paiement.

Dépenses et fa?ades moqueuses dans les tests Laravel

Comment se moquer de la fa?ade correctement?

La fa?ade de Laravel fournit des services d'accès à l'interface statique dans des conteneurs, tels que Cache::get() , Auth::user() , etc. Pour se moquer d'eux, vous ne pouvez pas utiliser les maquettes d'instance normales, mais Facade::shouldReceive() .

Par exemple, vous souhaitez se moquer de la fa?ade de cache:

 Cache :: omméReceive ('get') -> avec ('key') -> anTreturn ('value');

Si vous essayez de vous moquer de la manière normale:

 $ this-> instance (cache :: class, $ mock); // ne prendra pas effet

Cela ne fonctionne pas car la fa?ade n'est pas directement liée au nom de la classe, mais pointe vers un alias dans le conteneur.

Conseils: Certaines fa?ades soutiennent l'utilisation de "l'alias de fa?ade" pour se moquer, par exemple, cache() correspond à CacheManager , qui peut être utilisée de manière flexible en combinaison avec des implémentations spécifiques.


Plus naturel avec Mockery et PHPUnit

Laravel utilise PHPUnit par défaut, et il est plus pratique d'écrire un comportement simulé avec la moquerie. Après l'installation, il peut être utilisé directement dans les tests:

 Le compositeur a besoin de moqueries / moqueries --dev

Puis ajouter:

 Utilisez Mockery \ Adapter \ phpUnit \ MockeryPunItIntegration;

Ou fermer manuellement à la fin de chaque test:

 Fonction publique Décodown (): void
{
    Moquerie :: close ();
}

La syntaxe de Mockery est plus concise et intuitive, adaptée pour définir rapidement les comportements attendus et les valeurs de retour.


Notes et erreurs communes

  • Oublié de libérer Mock : Mockery devrait nettoyer l'état après chaque test, sinon cela affectera les tests ultérieurs.
  • Sur Mock : ne si vous vous moquez que de la partie qui vous tient à c?ur, ne vous moquez pas, sinon le test deviendra fragile.
  • Abrupte andReturnUsing() : Cette méthode convient à une logique complexe, mais tous les scénarios ne l'exigent pas.
  • La correspondance des paramètres de la simulation est inexacte : essayez de faire correspondre les paramètres aussi précisément que possible lors de l'utilisation with() pour éviter la défaillance de la simulation en raison de différents paramètres.

Fondamentalement, c'est tout. Master Mocking Skills et vos tests Laravel seront plus stables, plus rapides et plus faciles à entretenir.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefa?on, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Que sont les itinéraires à Laravel et comment sont-ils définis? Que sont les itinéraires à Laravel et comment sont-ils définis? Jun 12, 2025 pm 08:21 PM

Dans Laravel, le routage est le point d'entrée de l'application qui définit la logique de réponse lorsqu'un client demande un URI spécifique. La route mappe l'URL vers le code de traitement correspondant, qui contient généralement des méthodes HTTP, des URI et des actions (fermetures ou méthodes de contr?leur). 1. Structure de base de la définition de l'itinéraire: lier les demandes à l'aide de la route :: verb ('/ uri', action); 2. Prend en charge plusieurs verbes HTTP tels que Get, Post, Put, etc.; 3. Les paramètres dynamiques peuvent être définis via {param} et les données peuvent être passées; 4. Les routes peuvent être nommées pour générer des URL ou des redirections; 5. Utilisez des fonctions de regroupement pour ajouter uniformément les préfixes, les middleware et autres paramètres de partage; 6. Les fichiers de routage sont divisés en web.php, ap en fonction de leur objectif

Quelles sont les politiques à Laravel et comment sont-elles utilisées? Quelles sont les politiques à Laravel et comment sont-elles utilisées? Jun 21, 2025 am 12:21 AM

Inlaravel, Politicys organisationAutorizationLogicFormodelactions.1.PoliciesAreclasseswithMethodsLikeView, Create, Update etdeleTeTeTrueTrueorfalSebaseDonUserperMissions.2.ToregisterApolicy, MaptheModeltOtspolicyInThes.2.

Comment créer de nouveaux enregistrements dans la base de données à l'aide d'éloquente? Comment créer de nouveaux enregistrements dans la base de données à l'aide d'éloquente? Jun 14, 2025 am 12:34 AM

Pour créer de nouveaux enregistrements dans la base de données à l'aide d'éloquente, il existe quatre méthodes principales: 1. Utilisez la méthode de création pour créer rapidement des enregistrements en transmettant le tableau d'attribut, tels que l'utilisateur :: Create (['name' => 'Johndoe', 'email' => 'John@example.com']); 2. Utilisez la méthode de sauvegarde pour instancier manuellement le modèle et attribuer des valeurs pour enregistrer une par une, ce qui convient aux scénarios où une affectation conditionnelle ou une logique supplémentaire est requise; 3. Utilisez FirstOrCreate pour trouver ou créer des enregistrements en fonction des conditions de recherche pour éviter les données en double; 4. Utilisez UpdateorCreate pour trouver des enregistrements et mettre à jour, sinon, créez-les, ce qui convient au traitement des données importées, etc., qui peuvent être répétitives.

Comment faire fonctionner les semers à Laravel? (PHP Artisan DB: Seed) Comment faire fonctionner les semers à Laravel? (PHP Artisan DB: Seed) Jun 12, 2025 pm 06:01 PM

Thephpartisandb:seedcommandinLaravelisusedtopopulatethedatabasewithtestordefaultdata.1.Itexecutestherun()methodinseederclasseslocatedin/database/seeders.2.Developerscanrunallseeders,aspecificseederusing--class,ortruncatetablesbeforeseedingwith--trunc

Quel est le but de l'outil de ligne de commande artisanale à Laravel? Quel est le but de l'outil de ligne de commande artisanale à Laravel? Jun 13, 2025 am 11:17 AM

Artisan est un outil de ligne de commande de Laravel pour améliorer l'efficacité du développement. Ses fonctions principales incluent: 1. Générer des structures de code, telles que les contr?leurs, les modèles, etc., et créer automatiquement des fichiers via MADE: Controller et autres commandes; 2. Gérer la migration de la base de données et remplir, utiliser migrer pour exécuter la migration, et db: semences pour remplir les données; 3. Prise en charge des commandes personnalisées, telles que Make: Command Creation Class Command Class pour implémenter l'encapsulation de la logique métier; 4. Fournir des fonctions de débogage et de gestion de l'environnement, telles que la clé: générer pour générer des clés et servir à démarrer le serveur de développement. La ma?trise de l'utilisation de l'artisan peut améliorer considérablement l'efficacité du développement de Laravel.

Comment définir des méthodes (actions) dans un contr?leur? Comment définir des méthodes (actions) dans un contr?leur? Jun 14, 2025 am 12:38 AM

La définition d'une méthode (également connue sous le nom d'action) dans un contr?leur est de dire à la demande quoi faire lorsque quelqu'un visite une URL spécifique. Ces méthodes traitent généralement les demandes, traitent les données et renvoient des réponses telles que les pages HTML ou JSON. Comprendre la structure de base: la plupart des cadres Web (tels que RubyOnRails, Laravel ou SpringMVC) utilisent des contr?leurs pour regrouper les opérations liées. Les méthodes de chaque contr?leur correspondent généralement à un itinéraire, c'est-à-dire le chemin d'établissement d'URL auquel quelqu'un peut accéder. Par exemple, il peut y avoir les méthodes suivantes dans PostController: 1.Index () - Afficher la liste des postes; 2.Show () - Afficher les messages individuels; 3.Create () - gérer la création de nouveaux messages; 4.U

Comment installer Laravel sur mon système d'exploitation (Windows, MacOS, Linux)? Comment installer Laravel sur mon système d'exploitation (Windows, MacOS, Linux)? Jun 19, 2025 am 12:31 AM

Oui, YouCaninstallLaravelonanyOperatingSystemByfollowingTheSesteps: 1. InstallphpanDrequedExtensionsLikembstring, OpenSSL etxmlusingToolsLILLOxAmPonWindows, HomebrewonMacos, oraptonlinux; 2.InstallPoser, usinganinstalleronwindowswordrsormialCommandonmacer, usinganinstalleronwindowswordrsormiralcommandonmacer, usinganinstalleronwindowswordrsormiralcommandonmacer, usinganinstalleronwindowswordrsormiralcommandonmacer, usinganinstalleronwindowsterminbcommandonson

Comment faire des tests à Laravel? (Test d'artisan PHP) Comment faire des tests à Laravel? (Test d'artisan PHP) Jun 13, 2025 am 12:02 AM

ToruntestSinLaravelEffective, uthethPartisantStCommand qui-même sifflifiesphpunisage.1.setupa.env.testingfileandconfigurephpunit.xmltousetestDatabaselikesqlite.2.GenerateTestSusingPartisanMake: Test, using - UnitForUrst.writeTetswithesSanMake: Test, Using - Unitfornits.writeTetswitheswithes

See all articles