Zend_Test-PHPUnit-Testing.xml 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <!-- EN-Revision: 15617 -->
  4. <sect2 id="zend.test.phpunit.testing">
  5. <title>コントローラおよび MVC アプリケーションのテスト</title>
  6. <para>
  7. 起動用の設定を済ませたら、テストの開始です。
  8. テストの方法は PHPUnit テストスイートによるものとほぼ同じですが、
  9. ちょっとした違いがいくつかあります。
  10. </para>
  11. <para>
  12. まず、テストケースの <code>dispatch()</code>
  13. メソッドを用いてテストの URL をディスパッチしなければなりません。
  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. しかし、時にはこれ以外の情報 (GET 変数や POST 変数、
  28. COOKIE 情報など) が必要になることもあります。
  29. これらの情報をリクエストに含めることもできます。
  30. </para>
  31. <programlisting language="php"><![CDATA[
  32. class FooControllerTest extends Zend_Test_PHPUnit_Controller_TestCase
  33. {
  34. // ...
  35. public function testBarActionShouldReceiveAllParameters()
  36. {
  37. // GET 変数を設定します
  38. $this->request->setQuery(array(
  39. 'foo' => 'bar',
  40. 'bar' => 'baz',
  41. ));
  42. // POST 変数を設定します
  43. $this->request->setPost(array(
  44. 'baz' => 'bat',
  45. 'lame' => 'bogus',
  46. ));
  47. // クッキーの値を指定します
  48. $this->request->setCookie('user', 'matthew');
  49. // あるいは複数の値を指定します
  50. $this->request->setCookies(array(
  51. 'timestamp' => time(),
  52. 'host' => 'foobar',
  53. ));
  54. // ヘッダを設定することもできます
  55. $this->request->setHeader('X-Requested-With', 'XmlHttpRequest');
  56. // リクエストメソッドを設定します
  57. $this->request->setMethod('POST');
  58. // ディスパッチします
  59. $this->dispatch('/foo/bar');
  60. // ...
  61. }
  62. }
  63. ]]></programlisting>
  64. <para>
  65. リクエストが準備できたので、次はアサーションを作成してみましょう。
  66. </para>
  67. </sect2>
  68. <!--
  69. vim:se ts=4 sw=4 et:
  70. -->