chapitre 9. tests incomplets et ignorés
chapitre 9. tests incomplets et ignoréschapitre 9. tests incomplets et ignorésprécédent suivantchapitre 9. tests incomplets et ignoréstests incomplets
lorsque vous travaillez sur une nouvelle classe de tests, vous pouvez
décider d'écrire des méthodes de test vides comme suit :
public function testsomething()
{
} pour prendre en note les tests que vous allez devoir écrire.
il y a un problème avec ces méthodes de tests vides : elles sont interprétées
par phpunit comme un test ayant réussi. ce défaut d'interprétation rend le
rapport de tests totalement inutile : on ne peut pas faire la distinction
entre un tests valide et un qui n'est pas encore implémenté. on peut pour
palier au problème appeler $this->fail() dans les méthodes
de tests non encore implémentées, mais ça ne change rien au problème puisque
le tests sera alors interprété comme ayant échoué, ce qui est tout aussi
confus que si le rapport annonçait un test réussi.
si on représente un test réussi par un témoin vert et un échec par un rouge,
il nous faut un témoin supplémentaire, jaune, qui représente les tests
incomplets ou non encore implémentés.
phpunit_framework_incompletetest est une interface qui
permet de générer une exception indiquant qu'un test n'a pas encore été
implémenté ou est incomplet. phpunit_framework_incompletetesterror
est l'implémentation standard de cette interface.
l'exemple 9.1
présente une classe de tests, sampletest, qui contient
la méthode d'un test, testsomething(). en appelant la méthode
adaptée marktestincomplete() (qui génère automatiquement une
exception phpunit_framework_incompletetesterror) dans la méthode,
on la déclare comme incomplète.
exemple 9.1: déclarer un test comme incomplet<?phprequire_once 'phpunit/framework.php'; class sampletest extends phpunit_framework_testcase{ public function testsomething() { // optionel : n'importe quel test ici. $this->asserttrue(true, 'ce test va passer.'); // arrêt de l'exécution du test après cette appel. $this->marktestincomplete( 'ce test n\'a pas encore été implémenté.' ); }}?>
un test incomplet est signalé par un i dans la sortie
du lanceur en ligne de commande de phpunit, comme illustré dans l'exemple
suivant :
phpunit --verbose sampletest
phpunit 3.1.9 by sebastian bergmann.
i
time: 00:00
there was 1 incomplete test:
1) testsomething(sampletest)
ce test n'a pas encore été implémenté.
/home/sb/sampletest.php:12
ok, but incomplete or skipped tests!
tests: 1, incomplete: 1.
le tableau 9.1
présent l'api utilisée pour déclarer un test comme incomplet.
tableau 9.1. api pour les tests incompletsméthodeactionvoid marktestincomplete()déclare le test courant comme incomplet.void marktestincomplete(string $message)déclare le test courant comme incomplet, la chaîne $message fournissant des informations supplémentaires.tests ignorés
certains tests ne peuvent pas être exécutés dans certains environnements.
par exemple, une couche d'abstraction à une base de données propose
un pilote spécifique pour chaque base de données qu'elle supporte. un
test basé sur le pilote mysql ne peut bien sûr être exécuté que si le
serveur mysql est installé et accessible.
l'exemple 9.2
présente une classe de tests, databasetest, qui contient
une unique méthode, testconnection(). dans la méthode
spécifique setup() on vérifie que l'extension mysqli est
bien disponible et on utilise marktestskipped() pour
ignorer le test si ce n'est pas le cas.
exemple 9.2: ignorer un test<?phprequire_once 'phpunit/framework.php'; class databasetest extends phpunit_framework_testcase{ protected function setup() { if (!extension_loaded('mysqli')) { $this->marktestskipped( 'l'extension mysqli n'est pas installée.' ); } } public function testconnection() { // ... }}?>
un test qui a été ignoré est signalé à l'aide d'un s
dans la sortie du lanceur en ligne de commande de phpunit, comme illustré
dans l'exemple suivant :
phpunit --verbose databasetest
phpunit 3.1.9 by sebastian bergmann.
s
time: 00:00
there was 1 skipped test:
1) testconnection(databasetest)
l'extension mysqli n'est pas installée.
/home/sb/databasetest.php:9
ok, but incomplete or skipped tests!
tests: 1, skipped: 1.
la table tableau 9.2
présent l'api utilisée pour ignorer un test.
tableau 9.2. api pour ignorer un testméthodeactionvoid marktestskipped()déclare le test courant comme à ignorer.void marktestskipped(string $message)déclare le test courant comme à ignorer, la chaîne $message fournissant des informations supplémentaires.précédent suivantchapitre 8. les extensions testcase sommaire chapitre 10. objets mockcopyright © 2005-2007 sebastian bergmann
and o'reilly media, inc..
Acceuil
suivante
chapitre 9. tests incomplets et ignorés F1 - Schumacher va faire des tests pour Ferrari la semaine ... Pearson Language Assessments: Home: PLA Worldwide: France: London ... Intermediate French Tests - French Tests for Intermediates Polémique autour de tests humains pour des médicaments anti-sida ... Amendement Mariani, tests adn... Tests, Questionnaires et Quizz • Web Ados • Site pour Ados • *** Handi-cv.com > Tests de connaissance et d'évaluation, proposés ... Mondial du Ski - Les 2 Alpes : Tests matériel 2008 Leçon sur les tests de divisibilité Conception de tests unitaires avec JUnit - Club d'entraide des ... Tests psychotechniques - Tests de recrutement Tests santé : risque de maladie cardiovasculaire et taux de ... Toute l'Europe: Comparatif tests ADN Le W3C publie la suite des tests de conformité XML Charles Liebert's Tests... LaTéléLibre.fr » DES TESTS QUI “GENE” Tests de jeux vidéo Bibliothèque de l'Université Laval - Tests Réussir les tests de sélection Etudium - tests d'orientation, de recrutement et de bilan ... Lab Tests Online: Welcome! Test qi Test personnalité Test psychotechnique Test intelligence hcard-tests-fr - Microformats One Voice : Comment mettre fin aux tests de toxicité sur animaux ? Halloween 2007, bricolages, coloriages, mandalas, jeux, tests ... Tests Jeux-Video Test Entrepreneur Formation Extreme Programming, Tests unitaires, travail ... Les tests, comparatifs et les comptes rendus d'événements de ... businessMOBILE.fr: Tests et guides d'achat produits TESTS TEST CONFIGURATION NAVIGATEUR - WEB BROWSER JAVASCRIPT ... Tests et déploiement Les Tests Tests ADN : Ils ont voté contre - Réseau Education Sans Frontières Lutece - Lutèce : Normes de développement : Tests unitaires La RTBF débute ses tests DVB-H en région bruxelloise Belgique Mobile dopage.be > Les tests de féminité PROJET TICI - Tests d'Identification des Compétences Informationnelles 500 tests psychotechniques de logique et d intelligence Simone Veil affirme son opposition aux tests ADN, IMMIGRATION BioPortail Traitements et tests Formation : Tests et recette des applications informatiques (MG725) RFO portail Internet de la télévision Outre-Mer Tests ADN : l ... Forum GenerationMP3 -> Tests des membres Des tests de diagnostic rapide pour la méningite à méningocoques Tests & Reviews iPhone - Blog iPhone France : iPhon.fr Tests Jeux Vidéo - Sport 365 - Tous les sports toute l'année Les tests ADN ouvrent la voie au 'bio-contrôle des individus' a ... Tests de Jeux Vidéo Vidéos de Tests IBM - Tests et intégration applicatifs Les tests de paternité et leurs conséquences sur la famille ... Auditweb - tests utilisateurs : détection des problèmes de ... LeMonde.fr : Réticent sur les tests ADN, le Sénat hésite à les ... [ iPod Fanatic ] Tests logiciels - iTunes - Transfert - Jeu [ iPod Fanatic ] Tests matériels - iPod Nano - Shuffle - Mini Bug 4821: petits tests - blog.mozbox.org Sympatico / MSN Mieux Vivre : Tests interactifs : Test interactifs ... Dossier : Postuler, Les tests de recrutement Tests d'intelligence