vendredi 25 septembre 2026

À propos

Contact

Tests

Behat contre Codeception pour du BDD sur un projet WordPress d’agence

Deux façons d'écrire des scénarios lisibles par un client non technique. L'une mise sur la pureté Gherkin, l'autre sur l'intégration native à wp-browser.

Par Clément Hadrot • 14 septembre 2021 • 5 min de lecture • Aucun commentaire
Behat contre Codeception pour du BDD sur un projet WordPress d'agence

Un client dans le secteur associatif nous a demandé, après plusieurs régressions passées inaperçues sur son parcours d’adhésion en ligne, de pouvoir « lire et valider » les scénarios de test avant chaque mise en production, sans avoir à ouvrir une ligne de code PHP. C’est la promesse du BDD (Behavior-Driven Development) : des scénarios écrits en langage presque naturel, au format Gherkin, que Behat et Codeception savent tous deux interpréter — mais avec des philosophies très différentes.

Après avoir testé les deux sur ce projet précis, la comparaison mérite d’être posée sur trois critères concrets : la lisibilité réelle pour un non-développeur, le coût de maintenance des scénarios, et l’intégration avec l’écosystème WordPress existant.

Behat : du Gherkin pur, sans détour

Behat est un framework BDD généraliste, sans lien natif avec WordPress. Chaque scénario est écrit en Gherkin, puis relié à du code PHP via des définitions d’étapes (« step definitions ») que l’équipe technique doit écrire elle-même :

Fonctionnalité: Adhésion en ligne
  Scénario: Un visiteur adhère avec succès
    Étant donné que je suis sur la page "Adhérer"
    Quand je remplis le formulaire avec un e-mail valide
    Et que je valide le paiement de test
    Alors je vois le message "Bienvenue parmi nos adhérents"

Cette pureté a un prix : Behat ne fournit aucune interaction WordPress prête à l’emploi. Naviguer, se connecter en tant qu’administrateur, ou vérifier un état en base demande d’écrire soi-même chaque définition d’étape avec Mink, sa bibliothèque de navigation web sous-jacente.

Codeception avec wp-browser : le BDD intégré à l’écosystème

Codeception, via l’extension wp-browser déjà largement utilisée pour les tests d’acceptation WordPress, propose un module Gherkin qui réutilise directement les actions déjà disponibles pour l’équipe technique (création de contenus via les factories, connexion administrateur, assertions sur la base) :

Feature: Adhésion en ligne

  Scenario: Un visiteur adhère avec succès
    Given I am on page "/adherer"
    When I fill field "Email", "visiteur@example.test"
    And I click "Valider l'adhésion"
    Then I see "Bienvenue parmi nos adhérents"
    And there is 1 row in the "wp_usermeta" table where "meta_key" is "statut_adhesion"
L'essentiel à retenir : Behat impose Gherkin pur, sans échappatoire ; Codeception avec wp-browser mutualise le BDD et les tests techniques ; Le choix dépend surtout de qui écrit les scénarios

La dernière ligne illustre l’avantage principal : vérifier un état en base de données directement dans le scénario Gherkin, sans écrire de définition d’étape personnalisée, puisque wp-browser l’expose nativement.

Comparatif sur trois critères

CritèreBehatCodeception + wp-browser
Lisibilité du GherkinTrès haute, syntaxe libreHaute, mais certaines étapes restent techniques (accès table)
Coût des définitions d’étapeÉlevé, tout est à écrireFaible, largement réutilisé de wp-browser
Cohabitation avec les tests techniques existantsNécessite un second outil en parallèleMême configuration, mêmes modules

Verdict argumenté

Sur ce projet associatif, Codeception avec wp-browser s’est imposé pour une raison précise : l’équipe technique utilisait déjà wp-browser pour ses tests d’acceptation classiques, et dupliquer la configuration pour Behat n’aurait apporté aucune valeur supplémentaire, seulement une deuxième pile d’outils à maintenir. La mutualisation des modules et des helpers a permis d’écrire les scénarios Gherkin en une fraction du temps qu’aurait demandé Behat depuis zéro.

Behat reste pertinent dans un contexte différent : une équipe qui travaille sur plusieurs technologies au-delà de WordPress, où la neutralité de Behat vis-à-vis du framework testé devient un vrai atout, ou une organisation qui a déjà investi massivement dans des définitions d’étape Behat réutilisables entre projets.

Le choix ne se tranche pas sur la qualité intrinsèque de l’outil, mais sur une question simple : qui écrira les définitions d’étape, et combien de temps l’équipe est-elle prête à y consacrer avant le premier scénario utile ?

Points de vigilance quel que soit le choix

  • Un scénario Gherkin trop détaillé techniquement perd tout son intérêt pour un lecteur non technique — la relecture avec le client doit rester un critère de qualité du scénario, pas une formalité.
  • Les scénarios BDD ne remplacent pas les tests unitaires PHPUnit sur la logique métier fine : ils valident des parcours complets, pas des cas limites internes.
  • Un scénario BDD lent à s’exécuter (chaque étape ouvre un navigateur réel) doit rester réservé aux parcours critiques, pas à toute la surface fonctionnelle du site.

Pour aller plus loin

Le choix entre les deux outils gagne à être posé après, et non avant, la mise en place de la première suite de tests d’acceptation technique du projet : la configuration déjà existante pèse souvent plus lourd dans la décision que les qualités théoriques comparées de Behat et de Codeception.

Partager :

À propos de l'auteur

Clément Hadrot

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi