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