Zend_Test-PHPUnit-Testing.xml 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <!-- EN-Revision: 12116 -->
  2. <sect2 id="zend.test.phpunit.testing">
  3. <title>Tester vos contrôleurs et vos applications MVC</title>
  4. <para>Une fois , votre fichier d'amorçage en place, vous pouvez commencer à tester. Tester est typiquement ce que
  5. vous auriez pu faire avec une suite de test PHPUnit ("test suite"), avec quelques petites différences
  6. mineures.</para>
  7. <para>Premièrement, vous devez distribuer l'URL à tester en utilisant la méthode <code>dispatch()</code> de TestCase
  8. :</para>
  9. <programlisting role="php"><![CDATA[
  10. class IndexControllerTest extends Zend_Test_PHPUnit_Controller_TestCase
  11. {
  12. // ...
  13. public function testPageAccueil()
  14. {
  15. $this->dispatch('/');
  16. // ...
  17. }
  18. }
  19. ]]></programlisting>
  20. <para>Il y a des moments, cependant, où vous devez fournir des informations supplémentaires - des variables GET et
  21. POST, des informations de COOKIE, etc. Vous pouvez peupler la requête avec ces informations :</para>
  22. <programlisting role="php"><![CDATA[
  23. class FooControllerTest extends Zend_Test_PHPUnit_Controller_TestCase
  24. {
  25. // ...
  26. public function testBarActionShouldReceiveAllParameters()
  27. {
  28. // Passer les variables GET :
  29. $this->request->setQuery(array(
  30. 'foo' => 'bar',
  31. 'bar' => 'baz',
  32. ));
  33. // Passer les variables POST :
  34. $this->request->setPost(array(
  35. 'baz' => 'bat',
  36. 'lame' => 'bogus',
  37. ));
  38. // Paramètrer une valeur de cookie :
  39. $this->request->setCookie('user', 'matthew');
  40. // ou plusieurs :
  41. $this->request->setCookies(array(
  42. 'timestamp' => time(),
  43. 'host' => 'foobar',
  44. ));
  45. // Ajouter des en-têtes :
  46. $this->request->setHeader('X-Requested-With', 'XmlHttpRequest');
  47. // Définir le type de requête :
  48. $this->request->setMethod('POST');
  49. // Distribuer :
  50. $this->dispatch('/foo/bar');
  51. // ...
  52. }
  53. }
  54. ]]></programlisting>
  55. <para>Maintenant que la requête est construite, il est temps de créer des assertions.</para>
  56. </sect2>