Zend_Test-PHPUnit-Testing.xml 2.2 KB

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