Test-Driven Development avec WordPress
Le Test-Driven Development (TDD) est une approche qui consiste à écrire les tests avant le code de production. Voyons comment l’appliquer au développement WordPress.
Qu’est-ce que le TDD ?
Le TDD suit un cycle simple en 3 étapes :
- Red : Écrire un test qui échoue
- Green : Écrire le code minimal pour faire passer le test
- Refactor : Améliorer le code tout en gardant les tests verts
Pourquoi utiliser le TDD avec WordPress ?
- Confiance : Vous savez que votre code fonctionne
- Documentation : Les tests documentent le comportement attendu
- Refactoring : Vous pouvez modifier le code en toute sécurité
- Qualité : Moins de bugs en production
Mise en place avec PHPUnit
Installation
composer require --dev phpunit/phpunit
composer require --dev yoast/phpunit-polyfills
Structure des tests
mon-plugin/
├── src/
│ └── MonPlugin.php
├── tests/
│ └── MonPluginTest.php
└── phpunit.xml
Exemple de test
<?php
/**
* Tests pour Mon_Plugin
*
* @package Mon_Plugin
*/
class MonPluginTest extends WP_UnitTestCase {
/**
* Test de la fonction de validation
*/
public function test_validation_email() {
$plugin = new Mon_Plugin();
// Test avec un email valide
$this->assertTrue(
$plugin->valider_email( 'test@example.com' )
);
// Test avec un email invalide
$this->assertFalse(
$plugin->valider_email( 'email-invalide' )
);
}
}
Bonnes pratiques
1. Un test = un comportement
Chaque test doit vérifier un seul comportement spécifique.
2. Tests isolés
Les tests ne doivent pas dépendre les uns des autres.
3. Nommage explicite
public function test_should_return_false_when_email_is_invalid() {
// Test ici
}
4. Couverture minimale de 80%
Visez une couverture de code d’au moins 80% pour garantir la qualité.
Intégration continue
Automatisez vos tests avec GitHub Actions :
name: Tests
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Run tests
run: composer test
Conclusion
Le TDD peut sembler ralentir le développement au début, mais il accélère considérablement la maintenance et réduit les bugs. C’est un investissement qui en vaut la peine !
Prochaine étape : Découvrez comment mettre en place des tests d’intégration pour WordPress.