Soumis par Maxence Delannoy le mar, 18/11/2008 - 18:11
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
<?php // Important ! Affiche tous les messages d'erreurs error_reporting(E_ALL); // Installe le chargeur automatique de classes require_once 'Zend/Loader.php'; Zend_Loader::registerAutoload(); // Charge la bibliothèque PHPUnit require_once 'PHPUnit/Framework/TestSuite.php'; // Charge notre classe d'initialisation require_once '../application/Initializer.php'; // Charge le test du contrôleur IndexController require_once 'controllers/IndexControllerTest.php'; // Mise en place d'une suite de test class AllTests extends PHPUnit_Framework_TestSuite { public function __construct() { $this->setName('AllTests'); $this->addTestSuite('IndexControllerTest'); } public static function suite() { return new self(); } }
Ensuite, on crée un test pour notre contrôleur index et son action indexAction.
/test/controllers/IndexControllerTest.php
<?php require_once 'Zend/Test/PHPUnit/ControllerTestCase.php'; class IndexControllerTest extends Zend_Test_PHPUnit_ControllerTestCase { protected function setUp() { // Code de mise en place $this->bootstrap = array($this, 'appBootstrap'); parent::setUp(); } protected function appBootstrap() { $this->frontController->registerPlugin(new Initializer('test')); } protected function tearDown() { // Nettoyage parent::tearDown(); } public function testIndexAction() { // Simule une requête vers la racine $this->dispatch('/'); // On vérifie le code de réponse HTTP $this->assertResponseCode(200, 'Code was ' . $this->_response->getHttpResponseCode()); // Le nom du contrôleur est bien Index $this->assertController('index', 'Controller was ' . $this->_request->getControllerName()); // Le nom de l'action est bien Index $this->assertAction('index', 'Action was ' . $this->_request->getActionName()); // Teste le contenu de la réponse $this->assertQueryContentContains('h4', 'Pierre QUIMOUSSE'); } }
Vous devez toujours vous assurer avec la méthode assertController que le contrôleur est bien celui attendu, car en cas d'erreur c'est le contrôleur error qui va répondre.
Après plusieurs vérifications pour s'assurer que le routage est correct, le test vérifie qu'on a bien dans la sortie une balise h4 avec le texte Pierre QUIMOUSSE. Vous avez plein d'autres tests possibles, je vous renvoie pour cela à la documentation officielle.



Poster un nouveau commentaire