Zend_Test-PHPUnit-Testing.xml 2.2 KB

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