Les tests unitaires avec Stato

Stato s’appuie sur l’excellent librairie SimpleTest pour vous fournir l’infrastructure nécessaire à l’écriture de tests pour vos applications.

Ecrire un test est très simple :

// fichier test/hello_world_test.php
class HelloWorld
{
    public static function write()
    {
        return 'hello world';
    }
}
 
class HelloWorldTest extends UnitTestCase
{
    public function testWriteMethod()
    {
        $this->assertEqual('hello world', HelloWorld::write());
    }
}

Je vous l’accorde, cet exemple est nul. Mais c’est un exemple... Pour lancer le test, il suffit d’utiliser la commande suivante :

php.exe scripts/run_tests.php hello_world_test.php

HelloWorldTest
OK
Test cases run: 1/1, Passes: 1, Failures: 0, Exceptions: 0

Pour que cela reste aussi simple, il est toutefois nécessaire d’adopter la convention suivante : une seule classe de test par fichier, et de donner au nom du fichier la version “underscorée” du nom de la classe : HelloWorldTesthello_world_test.php.

Notez que la classe que nous étendons, UnitTestCase, est la classe principale de SimpleTest. A ce sujet, SimpleTest utilise la convention traditionnelle en PHP d’utiliser le lower camelCase pour nommer les méthodes (assertTrue, assertEqual, etc...). Etant donné que Stato utilise le underscoring, vous disposez d’une autre classe de base, StatoTestCase, qui vous offre les 2 : camelCase ou underscoré. Notre test précédent pourrait donc se réécrire ainsi :

class HelloWorld
{
    public static function write()
    {
        return 'hello world';
    }
}
 
class HelloWorldTest extends StatoTestCase
{
    public function test_write_method()
    {
        $this->assert_equal('hello world', HelloWorld::write());
    }
}
 
fr/unit_tests.txt · Last modified: 2008/01/25 12:49