Crochet.
Le test d’unit é WordPress fournit un outil de simulation pour les instances phpmailer utilisées par wp u mail. Lorsque utilisez WP _ unittestcase, lrsquoInstance mockphpmailer est remplacée par lrsquoinstance globale phpmailer couramment utilisée par WP mail (). Mockphpmailer étend phpmailer et suit tous les e mails envoyés par lui. Cela nous permet de tester les résultats des paramètres WP _ mail et PHP Mailer passés à WP mail. Cet article décrit principalement comment le configurer et lrsquoutiliser. La précision de la simulation limite sa faisabilité. En utilisant la simulation de courrier wp u utilisée par Core, nous savons que nos tests sont aussi précis que les tests de courrier wp u pour WordPress Core. Ça ne les rend pas parfaits. En gros, cela en fait une méthode drsquoessai assez fiable. À la fin de il y a des liens vers drsquoautres outils que pouvez utiliser pour ajouter des niveaux de test supplémentaires à la méthode, mais je vais commencer par la méthode.
Nous pouvons récupérer cette instance en utilisant la fonction tests _ Retrieve phpmailer instance (). Voyons ce qursquoon va faire. Créer un cas de test avoir une classe abstraite dans un test plug in est un modèle commun qui est votre cas de test de base. Cette classe étend WP _ unittestcase. Par conséquent, si nécessaire, la classe peut être étendue pour créer la base drsquoun type particulier de test. Commençons par créer le cas email _ test: lt?php
**
* Caso di prova 8212 passaggio 1
*
la classe astratta Email_Test_Case estende WP_UnitTestCase{
** @inheritdoc *
funzione pubblica setUp(){
genitore::setUp()
}
** @inheritdoc *
funzione pubblica tearDown(){
genitore::tearDown()
}
} In questo momento, questo non aggiunge nulla di nuovo, è solo un inizio. I metodi setUp e tearDown che stiamo sovrascrivendo dalla classe genitore vengono utilizzati per ripristinare tutto tra ogni singolo test. Poiché WordPress utilizza un globale per PHPMailer, il finto mailer può tenere traccia di ogni e-mail inviata. È utile, ma vogliamo anche essere più sicuri che tutto venga ripristinato tra un test e l039altro.
Possiamo usare la funzione reset_phpmailer_instance per inserire una nuova istanza di MockPHPMailer nel global utilizzato da wp_mail. Facciamolo durante l039installazione e lo smontaggio, solo per sicurezza. Réinitialiser _ Mailer ()
}
Hériter du document
Teardown () {fonction publique
Parent:: teardown ()
$this gt Reset message ()
}
* *
Réinitialiser le programme de courrier
* *
Renvoie booléen
*
Fonction protégée Reset _ Mailer () {
Renvoie Reset _ phpmailer instance ()
}
* *
Trouver un faux facteur
* *
* Wrap tests _ Retrieve phpmailer instance ()
* *
Retour à mockphpmailer
*
Get _ Mock Mailer () {protected Functions
Retourner les tests _ retourner phpmailer instance ()
}
Jrsquoai créé
Crsquoest le sujet. Nous pouvons lrsquoutiliser pour obtenir le sujet du message
$Object = lsquoObjectrsquo
$message = lsquomessagersquo
Slug _ send email ($recipient, $Object, $message)
$Mailer = tests _ Retrieve phpmailer instance ()
$this gt assertsame ($subject, $Mailer gt get _ sent () gt Subject)
Dans ce test, nous définissons tous les paramètres de la fonction à tester comme variables. Nous les Utilisons donc pour appeler des fonctions. Ensuite, nous obtenons une instance du programme false mail et obtenons lrsquoobjet. Il est plus facile de conserver les arguments drsquoune fonction dans une variable comme valeur attendue drsquoune assertion.
Tester le corps drsquoun courriel le corps drsquoun courriel sera testé de la même façon. Je ne pense pas qursquoil soit juste de tester une ligne. Donc, pour ce test, nous allons utiliser plus de lignes. Cela rend les choses un peu compliquées parce que les blancs sont compliqués. L’une des affirmations supplémentaires que obtenez avec les cas de Test wordpress est le test asserted discardwhite Space. Ceci vérifie que le contenu de la chaîne est le même, moins les espaces: tester les destinataires de courriel tester les destinataires de courriel est complexe. Le courriel peut être fourni sous forme drsquoadresse électronique ou de nom . De plus, nous pouvons passer une seule adresse e mail ou un tableau drsquoune ou plusieurs adresses e mail au paramètre to de WP _ mail, puis au paramètre to de la fonction que nous testons.
Nous devons tester chaque cas. Commençons par la simplicité, pas de noms, juste des e mails. Pour ce test, nous utilisons la fonction utilitaire get _ recipient () du programme false mail pour obtenir les destinataires. Dans ce contexte, la fonction renvoie un objet de classe standard. Nous pouvons vérifier les propriétés de lrsquoadresse: une fois que nous savons qursquoelle fonctionne, nous pouvons ajouter de la complexité en définissant le nom et le courriel. Nous avons besoin drsquoune déclaration similaire au dernier test, mais
Ou mettre en évidence les problèmes éventuels dans un résumé utile. Lrsquoe mail est difficile, et aider à le tester nrsquoest pas de nommer des choses ou de désactiver la mise en cache, mais jrsquoai découvert que lrsquoe mail est lrsquoune des choses les plus complexes que les développeurs traitent. Compte tenu de ce que jrsquoai fait: le plug in de formulaire de contact et lrsquoapplication Web de courriel, jrsquoai passé beaucoup de temps avec eux. Ces outils mrsquoaident à contrôler la situation pendant les tests en envoyant mes propres messages et en ne redimensionnant plus mes messages. Au fil du temps, la situation srsquoest compliquée. Lorsque les tests automatisés drsquointégration et les tests manuels de projet changent, il suffit drsquoutiliser un courriel ou un outil similaire sur Acid. Quoi que décidiez de faire pour maintenir la fiabilité du système de courrier électronique WordPress, j’espère que cela aidera.
Comment tester les e mails envoyés par WordPress?