| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- <!-- EN-Revision: 12339 -->
- <sect1 id="zend.test.phpunit" xmlns:xi="http://www.w3.org/2001/XInclude">
- <title>Zend_Test_PHPUnit</title>
- <para><classname>Zend_Test_PHPUnit</classname> fournit un TestCase pour les applications MVC qui contient des assertions qui
- permettent de tester toute une variété de responsabilités. La manière la plus facile de comprendre ce qui peut être
- fait est de regarder l'exemple suivant.</para>
- <example id="zend.test.phpunit.loginexample">
- <title>Exemple d'un TestCase d'une application de login</title>
- <para>L'exemple suivant est un simple test pour un contrôleur <code>UserController</code> permettant de vérifier
- différentes choses :</para>
- <itemizedlist>
- <listitem>
- <para>Le formulaire de login doit être affiché aux utilisateurs non-authentifiés.</para>
- </listitem>
- <listitem>
- <para>Quand un utilisateur se connecte, il doit être redirigé vers sa page de profil, et cette page doit
- affichée des infofrmations particulières.</para>
- </listitem>
- </itemizedlist>
- <para>Cet exemple particulier suppose différentes choses. Premièrement, la majeure partie de notre fichier
- d'amorçage a été déplacé dans un plugin. Ceci simplifie le paramétrage dans le cas des tests en spécifiant
- rapidement votre environnement, et ainsi vous permet d'amorcer votre application en une seule ligne. Ensuite,
- notre exemple suppose que le chargement automatique ("autoload") est activé donc nous n'avons pas à nous soucier
- de charger les classes appropriées (comme le bon contrôleur, le bon plugin, etc.)</para>
- <programlisting role="php"><![CDATA[
- class UserControllerTest extends Zend_Test_PHPUnit_ControllerTestCase
- {
- public function setUp()
- {
- $this->bootstrap = array($this, 'appBootstrap');
- parent::setUp();
- }
- public function appBootstrap()
- {
- $this->frontController->registerPlugin(
- new Bugapp_Plugin_Initialize('development')
- );
- }
- public function testCallWithoutActionShouldPullFromIndexAction()
- {
- $this->dispatch('/user');
- $this->assertController('user');
- $this->assertAction('index');
- }
- public function testIndexActionShouldContainLoginForm()
- {
- $this->dispatch('/user');
- $this->assertAction('index');
- $this->assertQueryCount('form#loginForm', 1);
- }
- public function testValidLoginShouldGoToProfilePage()
- {
- $this->request->setMethod('POST')
- ->setPost(array(
- 'username' => 'foobar',
- 'password' => 'foobar'
- ));
- $this->dispatch('/user/login');
- $this->assertRedirectTo('/user/view');
- $this->resetRequest()
- ->resetResponse();
- $this->request->setMethod('GET')
- ->setPost(array());
- $this->dispatch('/user/view');
- $this->assertRoute('default');
- $this->assertModule('default');
- $this->assertController('user');
- $this->assertAction('view');
- $this->assertNotRedirect();
- $this->assertQuery('dl');
- $this->assertQueryContentContains('h2', 'User: foobar');
- }
- }
- ]]></programlisting>
- <para>Cet exemple pourrait être écrit plus simplement : toutes les assertions ne sont pas nécessaires et sont
- fournies seulement à titre d'illustration. Cependant, il montre bien combien il est simple de tester vos
- applications.</para>
- </example>
- <xi:include href="Zend_Test-PHPUnit-Bootstrapping.xml" />
- <xi:include href="Zend_Test-PHPUnit-Testing.xml" />
- <xi:include href="Zend_Test-PHPUnit-Assertions.xml" />
- <xi:include href="Zend_Test-PHPUnit-Examples.xml" />
- </sect1>
|