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');
}
}
?>
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.
Add new comment