Lorsque nous développons de nouvelles fonctionnalités dansImage may be NSFW.
Clik here to view. notre code, il nous arrive de se demander si une modification viendra en briser une autre créée antérieurement. Afin de s’assurer de la stabilité de notre composante, il est impératif d’avoir un système qui nous assure que les fonctionnalités implémentées auparavant n’aient pas été supprimées. PHPUnit à la rescousse!
PHPUnit permet de tester nos blocs de code indépendamment les uns des autres. Lors de la création d’un test de fonctionnalité, nous devons donner une valeur à notre fonction. PHPUnit s’assurera que la valeur retournée par la fonction sera la valeur attendue. Plus la fonction sera étendue afin de supporter de nouveaux paramètres, plus les tests nous permettront de nous assurer qu’aucune fonctionnalité précédemment développée ne sera brisée.
Installation
Le mode d’installation à été trouvé sur PHPUnit.de. Il nous permet d’installer la version via les canaux PEAR.
Installer xdebug
Installer PHPUnit
sudo pear channel-discover pear.phpunit.de
sudo pear install –alldeps phpunit/PHPUnit
Une fois que PHPUnit est installé et fonctionnel, vous êtes prêt à créer votre premier test. Idéalement, si vous utilisez une librairie ou un framework, vous voudrez sans doute vouloir configurer vos tests afin que chacun utilise les classes de votre librairie. Pour cela, je vous suggère de vous créer une classe qui servira de « bootstrap » et qui sera appelée avant chaque test.
Voici un exemple de « bootstrap ».
setup.php
class Setup {
public static function init() {
// Root, libraries, classes and tests directories.
$root = dirname(dirname(__FILE__));
$config = $root} . ‘/config’;
$librairies = $root . ‘/libraries’;
$tests = $root . ‘/tests’;// Empêche le coverage du dossier de tests.
PHPUnit_Util_Filter::addDirectoryToFilter($tests);// Update include path.
$path = array($config, $librairies, $tests, get_include_path());
set_include_path(implode(PATH_SEPARATOR, $path));// Add files to the PHPUnit code coverage whitelist.
if (version_compare(PHPUnit_Runner_Version::id(), ’3.1.6′, ‘>=’)) {
PHPUnit_Util_Filter::addDirectoryToWhitelist($starLib);}
}
Votre classe de test
Blog.php
require_once ‘PHPUnit/Framework.php’;
//require_once dirname(__FILE__) . ‘/setup.php’;class Blog extends PHPUnit_Framework_TestCase {
public function test_failed() {
$this->assertFalse(true, ‘Ce test ne fonctionne pas’);
}
public function test_success() {
$this->assertTrue(true, ‘Ce test fonctionne’);
}
}
Une fois ces étapes réalisées, vous n’avez qu’à exécuter le fichier Blog.php pour obtenir ce résultat:
phpunit –colors Blog.php
Image may be NSFW.
Clik here to view.
Pour plus d’informations sur l’utilisation de PHPUnit, voir sur le site .
Bon test !