Zend_Test-PHPUnit-Testing.xml 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 15617 -->
  3. <!-- Reviewed: no -->
  4. <sect2 id="zend.test.phpunit.testing">
  5. <title>Testen eigener Kontroller und MVC Anwendungen</title>
  6. <para>
  7. Sobald man sein Bootstrap hat, kann man mit dem Testen beginnen. Testen funktioniert
  8. grundsätzlich wie man es in einer PHPUnit Test Suite erwarten würde, mit ein paar kleinen
  9. Unterschieden.
  10. </para>
  11. <para>
  12. Zuerst muß man eine URL die getestet werden soll ausführen, indem die
  13. <code>dispatch()</code> Methode des TestCases ausgeführt wird:
  14. </para>
  15. <programlisting language="php"><![CDATA[
  16. class IndexControllerTest extends Zend_Test_PHPUnit_Controller_TestCase
  17. {
  18. // ...
  19. public function testHomePage()
  20. {
  21. $this->dispatch('/');
  22. // ...
  23. }
  24. }
  25. ]]></programlisting>
  26. <para>
  27. Es gibt trotzdem Zeiten, , in denen man zusätzliche Informationen angeben muß -- GET und
  28. POST Variablen, COOKIE Informationen, usw. Man kann die Anfrage mit diesen Informationen
  29. ausstatten:
  30. </para>
  31. <programlisting language="php"><![CDATA[
  32. class FooControllerTest extends Zend_Test_PHPUnit_Controller_TestCase
  33. {
  34. // ...
  35. public function testBarActionShouldReceiveAllParameters()
  36. {
  37. // Setzt GET Variablen:
  38. $this->request->setQuery(array(
  39. 'foo' => 'bar',
  40. 'bar' => 'baz',
  41. ));
  42. // Setzt POST Variablen:
  43. $this->request->setPost(array(
  44. 'baz' => 'bat',
  45. 'lame' => 'bogus',
  46. ));
  47. // Setzt einen Cookie Wert:
  48. $this->request->setCookie('user', 'matthew');
  49. // or many:
  50. $this->request->setCookies(array(
  51. 'timestamp' => time(),
  52. 'host' => 'foobar',
  53. ));
  54. // Setzt sogar Header:
  55. $this->request->setHeader('X-Requested-With', 'XmlHttpRequest');
  56. // Setzt die Anfrage Methode:
  57. $this->request->setMethod('POST');
  58. // Ausführung:
  59. $this->dispatch('/foo/bar');
  60. // ...
  61. }
  62. }
  63. ]]></programlisting>
  64. <para>
  65. Jetzt wurde die Anfrage durchgeführt, es ist also Zeit Ausnahmen zu prüfen.
  66. </para>
  67. </sect2>
  68. <!--
  69. vim:se ts=4 sw=4 et:
  70. -->