Zend_Test

Zend_Test : expressions assertQuery

Zend_Test fournit une série de méthodes commençant par assertQuery qui permettent d'examiner le DOM de la réponse. La syntaxe des requêtes est identique à celle utilisée pour les sélecteurs CSS. Voici quelques exemples d'utilisation.

Zend_Test : récupérer les messages d'erreur d'un formulaire

Lors d'un test unitaire, il peut arriver que la soumission d'un formulaire échoue. Cela peut être du au passage via POST d'une valeur qui n'est pas considérée comme valide par le formulaire. Pour identifier la source du problème, vous êtes obligé d'examiner la réponse HTML pour retrouver d'éventuels messages d'erreurs, ce qui n'est pas très pratique. Le mieux ce serait de retrouver l'objet form qu'on a passé à la vue. C'est possible en passant par le ViewRenderer :

<?php
$vr 
Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
$view $vr->view;
$form $vr->form;
?>

Vous pouvez ensuite utiliser la méthode getMessages pour récupérer les messages d'erreur et les afficher sur la console :

<?php
$this
->assertXXX(..., print_r($form->getMessages(), true));
?>

Tester la génération d'un PDF avec Zend_Test et Zend_Pdf

Une petite astuce pour tester un contrôleur qui génère du PDF. Pour s'assurer que c'est bien du PDF qui est envoyé, on peut utiliser Zend_Pdf qui est capable de charger un document existant :

<?php
$this
->dispatch('/moncontrolleur/1/pdf');
$this->assertResponseCode(200);
$this->assertHeaderContains('Content-type''application/pdf');
$pdf Zend_Pdf::parse($this->getResponse()->getBody());
$this->assertEquals('MonProgramme'$pdf->properties['Creator']);
?>

Si le PDF n'est pas correct, Zend_Pdf lancera une exception : Zend_Pdf_Exception: File is not a PDF. On peut également vérifier les propriétés du PDF et le nombre de pages. Par contre, on ne peut pas accéder au contenu du PDF pour vérifier le texte qu'il contient.

PHPUnit n'aime pas les exits

PHPUnit n'aime pas les exits

J'avais un test unitaire basé sur Zend_Test qui ne s'exécutait pas. La seule sortie que j'obtenais c'était l'entête PHPUnit :

Création d'une suite de tests

Ceci étant fait, on va créer notre suite de tests. Ajoutez un répertoire test à la racine de votre application et placez-y le code suivant.

/test/AllTests.php

Taxonomy upgrade extras:

Tests unitaires avec Zend_Test

Le composant Zend_Test permet de réaliser des tests unitaires sur les applications utilisant le modèle MVC. Nous allons voir comment mettre en place des suites de tests qui nous permettront de vérifier le bon fonctionnement de notre application.

Taxonomy upgrade extras:

Subscribe to RSS - Zend_Test