# Tester vos contrôleurs et vos applications MVC

Une fois , votre fichier d'amorçage en place, vous pouvez commencer à tester. Tester est typiquement ce que vous auriez pu faire avec une suite de test PHPUnit ("test suite"), avec quelques petites différences mineures.

Premièrement, vous devez distribuer l'URL à tester en utilisant la méthode `dispatch()` de TestCase :

    class IndexControllerTest extends Zend_Test_PHPUnit_Controller_TestCase
    {
        // ...

        public function testPageAccueil()
        {
            $this->dispatch('/');
            // ...
        }
    }

Il y a des moments, cependant, où vous devez fournir des informations supplémentaires - des variables GET et POST, des informations de COOKIE, etc. Vous pouvez peupler la requête avec ces informations :

    class FooControllerTest extends Zend_Test_PHPUnit_Controller_TestCase
    {
        // ...

        public function testBarActionShouldReceiveAllParameters()
        {
            // Passer les variables GET :
            $this->request->setQuery(array(
                'foo' => 'bar',
                'bar' => 'baz',
            ));

            // Passer les variables POST :
            $this->request->setPost(array(
                'baz'  => 'bat',
                'lame' => 'bogus',
            ));

            // Paramètrer une valeur de cookie :
            $this->request->setCookie('user', 'matthew');
            // ou plusieurs :
            $this->request->setCookies(array(
                'timestamp' => time(),
                'host'      => 'foobar',
            ));

            // Ajouter des en-têtes :
            $this->request->setHeader('X-Requested-With', 'XmlHttpRequest');

            // Définir le type de requête :
            $this->request->setMethod('POST');

            // Distribuer :
            $this->dispatch('/foo/bar');

            // ...
        }
    }

Maintenant que la requête est construite, il est temps de créer des assertions.