Le framework PHP BDD Behat, vous permet de tester vos applications PHP en utilisant des phrases lisibles par l'homme pour écrire des fonctionnalités et des scénarios sur le comportement de vos applications afin de tester ses fonctionnalités. Nous pouvons ensuite exécuter ces tests pour voir si notre application se comporte comme prévu. Passons environ 15 minutes à parcourir rapidement le processus d'installation de Behat et à apprendre à tester le comportement de nos applications PHP en utilisant les bases.
Pour commencer les tests avec Behat, il suffit de l’installer sur notre machine de développement locale. J'utiliserai Composer, mais vous pouvez consulter la documentation relative aux méthodes d'installation supplémentaires..
Au sein de votre application PHP (j'ai une application PHP vierge nommée phpbehat
créé à l'avance) créer un composer.json
fichier avec le code suivant à charger dans Behat:
"require": "behat / behat": "2.4.*@stable", "stabilité minimale": "dev", "config": "bin-dir": "bin /"
Dans votre terminal, nous pouvons l'installer en utilisant la commande suivante:
mise à jour du compositeur
Nous devrions maintenant pouvoir exécuter le bin / behat
commande de travailler avec Behat.
Nous commençons toujours par créer un nouveau fonctionnalité. Une fonctionnalité est quelque chose que nous pouvons utiliser pour décrire une fonctionnalité de notre application, puis la mettre en œuvre pour que le test réussisse..
Une fonctionnalité, dans sa forme la plus simple, consiste à:
.fonctionnalité
extension.Maintenant, je ne peux pas vous montrer comment tester toutes les fonctionnalités possibles d'une application, car cela prendrait beaucoup trop de temps. Mais ce que je peux faire est de vous montrer comment écrire une fonctionnalité de base et vous pouvez adapter ce code pour le faire fonctionner pour votre application spécifique..
Pour ne pas compliquer le processus d’apprentissage, créons un outil très simple Phpadder.php
fichier qui contient quelques méthodes que nous pouvons utiliser pour additionner deux nombres et afficher leur somme.
classe Phpadder private $ a; private $ b; somme publique $; fonction publique __construct ($ a, $ b) $ this-> a = $ a; $ this-> b = $ b; fonction publique add () $ this-> sum = $ this-> a + $ this-> b; fonction publique display () return $ this-> sum;
Cela crée une nouvelle classe nommée Phpadder
. Nous avons quelques propriétés pour tenir le premier ($ a
) et deuxieme ($ b
) les numéros à ajouter, ainsi qu'un $ somme
propriété pour contenir la somme des valeurs.
Ensuite, nous avons notre constructeur qui initialise nos propriétés. Ensuite nous avons un ajouter
méthode pour ajouter les deux chiffres ensemble et enfin un afficher
méthode pour afficher la somme des deux nombres.
Voyons maintenant ceci Phpadder
classe. Créer un nouveau .fonctionnalité
fichier avec le code suivant:
# features / phpadder.feature Feature: additionneur Pour afficher la somme de deux nombres Comme n'importe qui, je dois fournir deux nombres
Nous commençons par donner à notre article le nom de additionneur
. Ensuite, nous spécifions, sur trois lignes, l’avantage, le rôle et enfin la fonctionnalité elle-même. Il devrait être assez explicite.
Maintenant que nous avons notre fonctionnalité, commençons à écrire nos scénarios.
Chaque fois que nous créons une fonctionnalité, nous pouvons définir des scénarios décrivant comment cette fonctionnalité se comporte dans certaines conditions. Les scénarios suivent la même présentation de base comprenant la description du scénario, un contexte, un événement et un résultat..
Créons un scénario pour tester notre Phpadder
application:
Scénario: Affiche la somme de deux nombres fournis Étant donné que j'ai le nombre 50 et le nombre 25 Quand je les additionne, je devrais avoir 75
Nous commençons par la description de notre scénario, nous énumérons ensuite les deux nombres de 50 et 25 et, lorsqu'ils sont additionnés, ils doivent afficher la somme de 75.
Vous pouvez également avoir plusieurs contextes, événements et résultats en utilisant les mots-clés suivants: Et
et Mais
. Voici un exemple modifié du scénario précédent où nous allons utiliser Et
:
Scénario: Affiche la somme de deux nombres fournis Étant donné que j'ai le nombre 50 et le nombre 25 Et que j'ai un troisième nombre de 25 Quand je les additionne ensemble, je devrais obtenir 100
Une étape n'est rien de plus qu'une fonction PHP composée d'un mot clé, d'une expression régulière et d'une fonction de rappel. Chaque déclaration de votre scénario sera associée à une étape. Ces étapes définissent ce qui devrait se produire étant donné qu'une de vos déclarations est appelée dans un scénario. Vous stockez toutes vos étapes dans la features / bootstrap / FeatureContext.php
fichier.
Dans notre FeatureContext.php
fichier (vous devrez peut-être créer ceci), nous devons écrire une étape pour chacune de nos instructions, en utilisant son nom comme nom de fonction. Nous allons commencer avec le "Étant donné que j'ai le numéro"
déclaration:
# features / bootstrap / FeaturesContext.php require ("Phpadder.php"); utilisez Behat \ Behat \ Context \ BehatContext, Behat \ Behat \ Exception \ PendingException; utilisez Behat \ Gherkin \ Node \ PyStringNode, Behat \ Gherkin \ Node \ TableNode; la classe FeatureContext étend BehatContext private $ Adder; / ** * @Given / ^ J'ai le numéro (\ d +) et le numéro (\ d +) $ / * / fonction publique iHaveTheNumberAndTheNumber ($ a, $ b) $ this-> Adder = new Phpadder ($ a, $ b);
Tout d'abord, nous créons un nouveau fichier PHP, exigeons dans notre Phpadder.php
file (le fichier que nous testons), puis nous utilisons quelques classes Behat avec utilisation
déclarations, juste après.
Ensuite, nous créons notre FeatureContext
classe et le faire étendre la BehatContext
classe.
Notre classe a une seule propriété, $ Adder
, qui tiendra un Phpadder
objet.
Enfin, nous créons une méthode pour notre première étape en utilisant le même nom que l’instruction. Notre étape a une expression régulière, trouvée dans le commentaire de la méthode. Cette expression régulière est utilisée pour faire correspondre l'étape à une instruction de scénario. Dans cette méthode, nous assignons simplement un nouveau Phpadder
objecter à notre $ this-> Adder
propriété de sorte que le reste de nos méthodes ait accès au même Phpadder
objet.
Maintenant, vous avez probablement remarqué la @Donné
mot clé dans le commentaire de votre fonction, il s’agit en fait d’une annotation permettant d’identifier les différents types d’étapes. Vous pouvez utiliser @Donné
, @Quand
, et @Ensuite
.
Il ne reste plus qu’à écrire les deux dernières étapes.
/ ** * @When / ^ Je les additionne $ / * / fonction publique iAddThemTogether () $ this-> Adder-> add ();
Cette étape utilise simplement notre $ this-> Adder
objets ajouter
méthode pour additionner les deux nombres.
/ ** * @Then / ^ Je devrais obtenir (\ d +) $ / * / fonction publique iShouldGet ($ somme) si ($ this-> Addition-> somme! = $ Somme) lance une nouvelle exception ("somme réelle : ". $ this-> Adder-> sum); $ this-> Adder-> display ();
Cette étape commence par vérifier si la somme réelle (récupérée à l'aide de notre $ this-> Adder
objet et son somme
propriété) est ne pas égal à la somme attendue. Si cela est vrai, cela signifie que Behat doit afficher un échec. Pour ce faire, nous allons simplement lancer une nouvelle exception affichant la somme réelle afin de pouvoir comparer. Sinon, nous appelons notre afficher
méthode.
Il est temps de faire les tests.
Maintenant que nos fonctionnalités, scénarios et étapes sont définis, exécutons nos tests à l'aide de la commande suivante:
bin / behat
Vous devriez voir les messages de réussite suivants à l'intérieur de votre terminal:
Vous pouvez vous assurer que vos tests fonctionnent correctement, en cassant simplement quelque chose dans votre ordinateur. Phpadder.php
fichier afin qu’il ne fonctionne pas exactement de la même façon que votre test l’attend. Par exemple, si nous changeons le ajouter
méthode à la place utiliser la soustraction, comme suit:
fonction publique add () $ this-> sum = $ this-> a - $ this-> b;
Et puis nous relançons nos tests: bin / behat
. Vous pouvez voir dans notre terminal que nous avons maintenant un test qui échoue, car il ne s'agit plus d'ajouter nos nombres mais de les soustraire:
En conclusion, vous pouvez suivre un processus en quatre étapes pour tester vos applications PHP avec Behat:
bin / behat
Donc, avec juste cette petite quantité de code, nous devrions maintenant avoir une compréhension de base de la façon de travailler avec Behat pour tester nos applications PHP. Pour plus d'informations sur l'utilisation de Behat, veuillez consulter leur documentation..