Je dois appliquer des tests unitaires à l'un de mes plugins. Je l'ai récemment réorganisé en classes, de sorte que les tests unitaires devraient être plus faciles à appliquer maintenant.
Quelles sont les stratégies efficaces pour tester mon plugin? J'ai besoin d'un moyen d'utiliser les fonctions de WordPress utilisées dans le plugin, mais je ne devrais pas avoir besoin d'un site WordPress en cours d'exécution (juste tester les données sur la base de données AFAIK), non?
J'ai du mal à comprendre comment tester à la fois le plug-in et non le plug-in dans le contexte du site. Je pourrais utiliser Selenium pour cela, mais pour le moment, je veux juste me concentrer sur le test unitaire de la fonctionnalité des classes de plug-in, afin que je ne les casse pas à chaque mise à jour.
En tant qu'ancien ingénieur en logiciel qui construit de grandes entreprises et qui a atterri dans une agence interactive, je peux vous donner quelques réflexions sur les tests lors du développement pour Wordpress:
Votre test unitaire doit tester le plus petit comportement qu'une classe puisse effectuer. Chaque classe devrait pouvoir être testée indépendamment de Wordpress. Si vous avez une dépendance à Wordpress, envisagez de créer des objets fictifs et/ou des méthodes dans votre test pour contourner ce problème. En fin de compte, cela changera un peu la manière dont vous écrivez votre code - mais ce sera beaucoup plus testable. Comme d'habitude pas de repas gratuit.
Lorsque vous atteignez le niveau de test fonctionnel, vous pouvez tester votre code avec des dépendances Wordpress. C’est à cet endroit que vous vérifieriez que votre plug-in exécute effectivement un service qu’il est supposé exécuter.
En fonction de ce que votre plugin fait, envisagez d'utiliser des tests basés sur Selenium qui testent la présence de données dans le DOM à l'aide d'identifiants. Il est raisonnablement robuste et il est beaucoup moins susceptible de changer de version. Là encore, le truc consiste à penser que les tests font partie du cycle de vie de votre développement logiciel. Des modifications importantes dans le code se répercuteront en cascade sur vos tests. Tout cela fait partie du coût des affaires.
Si vous avez besoin d'aide pour utiliser l'un des outils permettant d'y parvenir, je serais ravi de vous répondre si vous posez une nouvelle question. J'utilise PHPUnit et son extension Selenium dans mon travail.
Je ne l'ai pas encore fait moi-même, mais il existe un environnement de test pour les tests unitaires WordPress. Il est destiné aux tests de base, mais il pourrait être adapté pour tester les plugins.
Plus d'infos ici: