-
Notifications
You must be signed in to change notification settings - Fork 16
unittests
Copier le fichier /tests/config.inc.dist.php vers /tests/config.inc.php, puis l'adapter. Note: les unittests auront besoin d'une BDD, il est conseillé d'utiliser une db à part étant donnée qu'elle sera vidée pour les tests.
Il faudra ensuite s'assurer que les dépendances sont présentes: php composer.phar install --dev
cd tests
./run_all.sh
Il est possible de ne lancer qu'un test en particulier.
cd tests
./phpunit MonTest.php # lance les tests du fichier MonTest.php
./phpunit MonAutreTest.php # lance les tests du fichier MonAutreTest.php
./phpunit --filter testFoo MonTest.php # lance la fonction testFoo du fichier MonTest.php
utils.php contient des sous classes du framework php unit permettant d'optimiser et de simplifier les tests sur la BDD.
Il met aussi en place la config à partir de /tests/config-test.inc.php
Pour des raisons de performance il est conseillé de séparer ses unittests pour une classe en 3 types :
- Les tests ne nécessitant aucun accès à la BDD
- Les tests nécessitant un accès en lecture seulement à la BDD
- Les tests nécéssitant un accès complet à la BDD
Par exemple pour les unittests de la classe MyClass on aura dans l'ordre : MaClassTest, MaClassRodbTest et MaClassRwdbTes qui héritent respectivement de PHPUnit_Framework_TestCase, ReadOnlyDatabaseTest et DatabaseTest.
La raison pour laquelle il faut éviter de tout mettre dans un DatabaseTest et qu'à chaque test de ce testcase, la BDD est entièrement vidée et re-remplie avec les fixtures, ce qui s'avère rapidement coûteux en temps.