Zend_Test-PHPUnit-Testing.xml 2.2 KB

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