[prev in list] [next in list] [prev in thread] [next in thread] 

List:       pear-doc
Subject:    [PEAR-DOC] cvs: peardoc /ja/package/php/phpunit intro.xml run.xml testcase.xml  /ja/package/php/phpu
From:       "Haruki Setoyama" <haruki () php ! net>
Date:       2004-10-20 11:09:00
Message-ID: cvsharuki1098270540 () cvsserver
[Download RAW message or body]

haruki		Wed Oct 20 07:09:00 2004 EDT

  Added files:                 
    /peardoc/ja/package/php/phpunit/testcase	intro.xml 

  Modified files:              
    /peardoc/ja/package/php/phpunit	intro.xml run.xml testcase.xml 
  Log:
  translate the remains
  
["haruki-20041020070900.txt" (text/plain)]

http://cvs.php.net/diff.php/peardoc/ja/package/php/phpunit/intro.xml?r1=1.2&r2=1.3&ty=u
                
Index: peardoc/ja/package/php/phpunit/intro.xml
diff -u peardoc/ja/package/php/phpunit/intro.xml:1.2 \
                peardoc/ja/package/php/phpunit/intro.xml:1.3
--- peardoc/ja/package/php/phpunit/intro.xml:1.2	Wed Oct 22 11:18:32 2003
+++ peardoc/ja/package/php/phpunit/intro.xml	Wed Oct 20 07:09:00 2004
@@ -1,160 +1,156 @@
 <?xml encoding="utf-8" ?>
-<!-- sync: 1.4 -->
-<!-- $Revision: 1.2 $ -->
+<!-- $Revision: 1.3 $ -->
+<!-- EN-Revision: 1.5 Maintainer: haruki Status: ready -->
+<!-- CREDITS: hirokawa -->
 <refentry id="packages.php.phpunit.intro">
  <refnamediv>
   <refname>チュートリアル</refname>
   <refpurpose>
-   PHPUnitに関する簡易チュートリアル
+   PHPUnit 簡易チュートリアル
   </refpurpose>
  </refnamediv>
  <refsect1>
-  <title>試験フレー ワークの紹介</title>
+  <title>テストフレー ワークの紹介</title>
   <para>
-   <classname>PHPUnit</classname>は、関数やクラスのテストを自動的に行
                
-   うテストアプリケーションを作成する簡単な仕組みを提供します。
                
-   PHPUnitは、<ulink url="&url.junit;">JUnit</ulink>からヒン
-   トを得ています。Kent BeckとErich Gammaが、
-   <ulink url="&url.extreme.prog;">eXtreme Programming</ulink>
-   用のツールとしてJUnitを作成しました。XPの要 の1つは、
-   小さなソフトウエアコンポーネントを可能な限り \
                繁に、そして、早期に
-   試験し、アプリケーション全体を設定、試験する際にAPIのバグやエラーを
                
-   を修正しないことです。
-   PHPUnitから利益を得るためにXPに移行する必要はありません。
-   PHPUnitは、クラスまたは関数の集まりをテストするための有効なツールで
                
-   あり、デバッグを際限なく続けることを避ける手助けとなります。
 +   <classname>PHPUnit</classname> \
は、関数やクラスを自動的にテストする +   "テストスイート" \
を作成するためのシンプルなフレー ワークを提供します。 +   \
PHPUnit は、<ulink url="&url.junit;">JUnit</ulink> \
からヒントを得ています。 +   JUnit は、Kent Beck と Erich Gamma が、
+   <ulink url="&url.extreme.prog;">eXtreme Programming</ulink> (XP)
+   用のツールとして作成したソフトウエアです。XP \
においては、 +   \
小さなソフトウエアコンポーネントを可能な限り早期に \
繁に試験すること、 +   \
というルールが定められています。こうすることで、 +   \
アプリケーション全体を設定し試験する際になってまで、コンポーネント内部のバグやエラーを
 +   修正する 目にならなくてすみます。ユニットテストと呼ばれるこういったコンポーネント毎の
 +   テストは XP の基本原則のひとつですが、 からといって
+   PHPUnit を利用するために XP \
を実行しないといけない訳ではありません。 +   \
PHPUnitは、単体として、クラスや関数をテストする有効なツールであり、
 +   際限のないデバッグ作業を避けるのに有用です。
   </para>
  </refsect1>
  <refsect1 id="packages.php.phpunit.intro.workroutine">
   <title>実行手 </title>
   <para>
-   通常、クラスを作成し、<function>echo</function> または
-   <function>var_dump</function> を用いてシステ \
                化されていないいくつ
-   かのテストを行い、全てがうまく行くことを願います。PHPUnitによる恩恵
                
-   を得るためには、この流れを再考する必要があります。最善の方法は、以
                
-   下のように行うことです。
+   これまでに行われている良くあるテスト手 \
は、何らかのクラスを作成した後、 +   <function>echo</function> や \
<function>var_dump</function>  +   \
を用いて非体系的にテストを行い、不具合が発生しないことを願う、という流れでしょう。
 +   PHPUnit を使って利益を得るためには、この流れを再考する必要があります。
 +   最善の手 は、以下の通り行うことです。
    <itemizedlist>
     <listitem>
-     <para>1. クラス/APIを設計</para>
+     <para>1. クラス/ API を設計</para>
     </listitem>
     <listitem>
      <para>2. テスト用ツールを作成</para>
     </listitem>     
     <listitem>
-     <para>3. クラス/APIを実装</para>
+     <para>3. クラス/ API を実装</para>
     </listitem>     
     <listitem>
      <para>4. テスト用ツールを実行</para>
     </listitem>          
     <listitem>
-     <para>5. 失敗またはエラーを修正し、再度#4へ進む</para>
+     <para>5. 失敗またはエラーを修正し、再度 #4 へ進む</para>
     </listitem>               
    </itemizedlist>
-   この手 は、多くの時間を必要とするように見えますが、この印象は誤り
                
-   です。PHPUnitを用いてテスト用ツールを作成するには数分しかかからず、
                
-   テスト用ツールを実行するのには、数秒しかかかりません。
+   この手 を踏むと時間が多く必要となるように見えますが、その印象は誤りです。
 +   PHPUnit を使ってテストスイートを作成するには数分しかかからず、
 +   テストスイートの実行にも、数秒しかかかりません。
   </para>
  </refsect1>
  <refsect1 id="packages.php.phpunit.intro.design">
   <title>クラスの設計</title>
   <para>
-   簡単な例として、文字列処理クラスから始めてみましょう。まず、文字列
                
-   処理を行う一連の関数を関数の宣言を以下のように作成します。
 +   簡単な例として、文字列を処理するクラスを取り上げます。
 +   まず、文字列処理を行う一連の関数の宣言を以下のように作成します。
  <programlisting role="php">
     <![CDATA[
----- string.php ----
+//---- string.php ----
 
-<?php
 class String
 {
-    //contains the internal data
+    // 内部データを保持
     var $data;
 
-    // constructor
+    // コンストラクタ
     function String($data) {
         $this->data = $data;
     }
 
-    // creates a deep copy of the string object
+    // 文字列オブジェクトのコピーを生成
     function copy() {
     }
 
-    // adds another string object to this class
+    // 文字列をこのオブジェクトに付 
     function add($string) {
     }
 
-    // returns the formated string
+    // フォーマット済み文字列を返す
     function toString($format) {
     }
 }
-?>
     ]]>
     </programlisting>
    </para>
   </refsect1>
   <refsect1 id="packages.php.phpunit.intro.testsuite">
-   <title>テスト用スーツの作成</title>
+   <title>テストスイートの作成</title>
    <para>
-    Now we can create a test suite, which checks every
-    function of your string class. A test suite is normal
-    PHP class inherited from <classname>PHPUnit_TestCase
-    </classname> containing test functions,
-    identified by a leading 'test' in the function name.
-    In the test function an expected value has to be compared
-    with the result of the function to test.
-    The result of this compare must delegate to a function
-    of the <function>assert*</function>-family, which decides
-    if a function pass or fail the test.
+    次に、この文字列処理クラスの各関数をテストするテストスイートを作成します。
 +    テストスイートは、 <classname>PHPUnit_TestCase
+    </classname> を継承した通常の PHP クラスで、このクラス中に 
+    名称が 'test' で始まる "テスト関数" を定義していきます。
+    テスト関数においては、テスト対象の関数の帰り値と
+    ありうべき正しい値との比較を行います。
+    この比較は、<function>assert*</function> 系の関数を使って行い、
+    テストに合 したかどうかの判断が行われます。
     <programlisting role="php">
     <![CDATA[
----- testcase.php ----
-
-<?php
+//---- testcase.php ----
 
 require_once 'string.php';
 require_once 'PHPUnit.php';
 
 class StringTest extends PHPUnit_TestCase
 {
-    // contains the object handle of the string class
+    // 文字列処理クラスのオブジェクト
     var $abc;
 
-    // constructor of the test suite
+    // このテストスイートのコンストラクタ
     function StringTest($name) {
        $this->PHPUnit_TestCase($name);
     }
 
-    // called before the test functions will be executed
-    // this function is defined in PHPUnit_TestCase and overwritten
-    // here
+    // テスト関数が実行される前にコールされる
+    // この関数は PHPUnit_TestCase にて定義されており、
+    // ここでオーバーライドしている
     function setUp() {
-        // create a new instance of String with the
-        // string 'abc'
+        // 新しいインスタンスを文字列'abc'を設定して作成
         $this->abc = new String("abc");
     }
 
-    // called after the test functions are executed
-    // this function is defined in PHPUnit_TestCase and overwritten
-    // here
+    // テスト関数が実行された後にコールされる
+    // この関数は PHPUnit_TestCase にて定義されており、
+    // ここでオーバーライドしている
     function tearDown() {
-        // delete your instance
+        // インスタンスの削除
         unset($this->abc);
     }
 
-    // test the toString function
+    // toString 関数のテスト
     function testToString() {
         $result = $this->abc->toString('contains %s');
         $expected = 'contains abc';
         $this->assertTrue($result == $expected);
     }
 
-    // test the copy function
+    // copy 関数のテスト
     function testCopy() {
       $abc2 = $this->abc->copy();
       $this->assertEquals($abc2, $this->abc);
     }
 
-    // test the add function
+    // add 関数のテスト
     function testAdd() {
         $abc2 = new String('123');
         $this->abc->add($abc2);
@@ -163,21 +159,18 @@
         $this->assertTrue($result == $expected);
     }
   }
-?>
     ]]>
     </programlisting>
    </para>
   </refsect1>
   <refsect1 id="packages.php.phpunit.intro.firstrun">
-   <title>The first test run</title>
+   <title>テストの実行</title>
    <para>
-    Now, we can run a first test. Execute this PHP program.
-    Make sure that the paths are correct.
+    それでは、テストを実行してみましょう。
+    パスが正しいか確認し、この PHP プログラ を実行してく \
さい。  <programlisting role="php">
     <![CDATA[
----- stringtest.php ----
-
-<?php
+//---- stringtest.php ----
 
 require_once 'testcase.php';
 require_once 'PHPUnit.php';
@@ -186,13 +179,11 @@
 $result = PHPUnit::run($suite);
 
 echo $result -> toString();
-?>
     ]]>
     </programlisting>
    </para>
    <para>
-    If you call this script through commandline, you will get
-    this output:
+    コマンドラインで実行すると、以下の出力が得られます。
     <programlisting>
     <![CDATA[
 TestCase stringtest->testtostring() failed: expected true, actual false
@@ -200,93 +191,94 @@
 TestCase stringtest->testadd() failed: expected true, actual false
     ]]>
     </programlisting>
-    Every function fails the test, because your string functions
-    didn't returned what we defined as the expected value.
+    ま 実装が行われておらず、各文字列処理関数は正しい値を返しませんので、
 +    すべての関数がテストに不合 となります。
    </para>
    <para>
-    If you want to call the script through your browser, you have to put
-    the script in a correct html page and call <function>$result->toHTML
-    </function> instead of <function>$result->toString</function>.
+    ブラウザから実行したい 合は、
+    <function>$result->toString</function> を <function>$result->toHTML
+    </function> へ変更してく さい。HTML ページが出力されます。
    </para>
   </refsect1>
 
   <refsect1 id="packages.php.phpunit.intro.implement">
-   <title>Implementation</title>
+   <title>実装</title>
    <para>
-    Ok, let's start with implementation of the our string class.
+    文字列処理クラスの実装を行いましょう。
     <programlisting role="php">
     <![CDATA[
----- string.php ----
+//---- string.php ----
 
-<?php
 class String
 {
-    //contains the internal data
+    // 内部データを保持
     var $data;
 
-    // constructor
+    // コンストラクタ
     function String($data) {
         $this->data = $data;
     }
 
-    // creates a deep copy of the string object
+    // 文字列オブジェクトのコピーを生成
     function copy() {
         $ret = new String($this->data);
         return $ret;
     }
 
-    // adds another string object to this class
+    // 文字列をこのオブジェクトに付 
     function add($string) {
         $this->data = $this->data.$string->toString("%ss");
     }
 
-    // returns the formated string
+    // フォーマット済み文字列を返す
     function toString($format) {
         $ret = sprintf($format, $this->data);
         return $ret;
     }
 }
-?>
     ]]>
     </programlisting>
    </para>
    <para>
-    Implementing is done and run the test again:
+    実装が終了したら、テストを実行します。
     <programlisting>
 ~> <command>php -f stringtest.php</command>
 TestCase stringtest->testtostring() passed
 TestCase stringtest->testcopy() passed
 TestCase stringtest->testadd() failed: expected true, actual false
     </programlisting>
-    D'oh! the last test failed! We did a typing mistake. Change
-    line 16 in <filename>string.php</filename> to
+    あれ、最後のテストが不合 \
です。タイプミスをしたようです。 +    \
<filename>string.php</filename> の 16 行目を以下の様に修正します。  \
<programlisting role="php">  <![CDATA[
         $this->data = $this->data.$string->toString("%s");
     ]]>
     </programlisting>
-    and run the test again:
+    そして、テストを再実行します。
     <programlisting>
 ~> <command>php -f stringtest.php</command>
 TestCase stringtest->testtostring() passed
 TestCase stringtest->testcopy() passed
 TestCase stringtest->testadd() passed
     </programlisting>
-    Everything is ok now!
+    すべて合 しました。
    </para>
   </refsect1>
   <refsect1 id="packages.php.phpunit.intro.conclusion">
    <title>まとめ</title>
    <para>
-    Hm, such a big expenditure for testing three simple
-    functions? Don't forget, this is a small example.
-    Think about bigger, complexer API's like database
-    abstraction or basket classes in a shop application.
-    PHPUnit is an excellent tool to detect errors in the
-    implementation. Maybe you have a big class used
-    in a few applications and you want to reimplement
-    the class. With a test suite, you can easily check
-    and fix the new implementation in a short session.
+    たった3つの単純な関数しかないクラスに対しては、大袈裟な手 \
かも知れません。 +    \
しかし、上記は短い例に過ぎないのであって、オンラインショップの
 +    ショッピングカートやデータベース抽象化クラスなどの、
+    大きくて複雑な API を持つクラスを考えて見てく さい。
+    PHPUnit は、実装中に潜むバグを見つけるのに非常に有用なツールなのです。
 +   </para>
+   <para>
+    また、以前に使ったクラスの再実装をするような \
合を考えると、 +    \
テストスイート無しでは、そのクラスに依存するアプリケーションに
 +    不具合を発生させる可能性が高くなります。
+    まずテストスイートを作成し、新しいクラスがテストにすべて合 \
するように保ったまま +    \
再実装を行っていけば、アプリケーションに不具合が起きる事はないでしょう。
  </para>
   </refsect1>
 </refentry>
http://cvs.php.net/diff.php/peardoc/ja/package/php/phpunit/run.xml?r1=1.2&r2=1.3&ty=u
Index: peardoc/ja/package/php/phpunit/run.xml
diff -u peardoc/ja/package/php/phpunit/run.xml:1.2 \
                peardoc/ja/package/php/phpunit/run.xml:1.3
--- peardoc/ja/package/php/phpunit/run.xml:1.2	Wed Oct 22 11:18:32 2003
+++ peardoc/ja/package/php/phpunit/run.xml	Wed Oct 20 07:09:00 2004
@@ -1,10 +1,11 @@
 <?xml encoding="utf-8"?>
-<!-- sync: 1.4 -->
-<!-- $Revision: 1.2 $ -->
+<!-- $Revision: 1.3 $ -->
+<!-- EN-Revision: 1.4 Maintainer: haruki Status: ready -->
+<!-- CREDITS: hirokawa -->
 <refentry id="package.php.phpunit.run">
  <refnamediv>
   <refname>PHPUnit::run()</refname>
-  <refpurpose>TestSuiteを実行し、TestResultオブジェクトを返す</refpurpose>
 +  <refpurpose>テストスイートを実行し、TestResult \
オブジェクトを返す</refpurpose>  </refnamediv>
  <refsynopsisdiv>
   <funcsynopsis>
@@ -22,7 +23,7 @@
  <refsect1 id="package.php.phpunit.run.desc">
   &title.desc;
   <para>
-   指定したテストスーツを実行します。
+   指定したテストスイートを実行します。
   </para>
  </refsect1>
  <refsect1 id="package.php.phpunit.run.parameter">
@@ -31,7 +32,7 @@
    <itemizedlist>
     <listitem>
      <para>
-      <parameter>object $suite</parameter> - PHPUnit_TestSuiteのオブジェクト
+      <parameter>object $suite</parameter> - PHPUnit_TestSuite のオブジェクト
       <!-- <link linkend="package.phpunit.phpunit-testsuite"></link> -->
      </para>
     </listitem>
@@ -41,7 +42,7 @@
  <refsect1 id="package.categorie.mypackage.myfunction.return">
   &title.returns;
   <para>
-   <parameter>&amp;PHPUnit_Result</parameter> - \
PHPUnit_Resultへのリファレンス。 +   \
<parameter>&amp;PHPUnit_Result</parameter> - PHPUnit_Result \
へのリファレンス。  <!-- <link \
linkend="package.phpunit.phpunit-result">PHPUnit_Result</link>. -->  </para>
  </refsect1>
@@ -51,12 +52,10 @@
    <title>Using <function>PHPUnit::run</function></title>
    <programlisting role="php">
     <![CDATA[
-<?php
 require_once "PHPUnit.php";
 $suite  = New PHPUnit_TestSuite('Mathtest');
 $result = PHPUnit::run($suite);
 echo $result->toHtml();
-?>
 ]]>
    </programlisting>
   </example>
http://cvs.php.net/diff.php/peardoc/ja/package/php/phpunit/testcase.xml?r1=1.3&r2=1.4&ty=u
                
Index: peardoc/ja/package/php/phpunit/testcase.xml
diff -u peardoc/ja/package/php/phpunit/testcase.xml:1.3 \
                peardoc/ja/package/php/phpunit/testcase.xml:1.4
--- peardoc/ja/package/php/phpunit/testcase.xml:1.3	Wed Oct 22 11:18:32 2003
+++ peardoc/ja/package/php/phpunit/testcase.xml	Wed Oct 20 07:09:00 2004
@@ -1,29 +1,30 @@
 <?xml encoding="utf-8" ?>
-<!-- sync: 1.2 -->
-<!-- $Revision: 1.3 $ -->
+<!-- $Revision: 1.4 $ -->
+<!-- EN-Revision: 1.2 Maintainer: haruki Status: ready -->
+<!-- CREDITS: hirokawa -->
 <refentry id="package.php.phpunit.testcase">
  <refnamediv>
   <refname><classname>TestCase</classname></refname>
-  <refpurpose>TestCase: \
複数のテストを実行するための設備(fixture)を定義する</refpurpose> \
+  <refpurpose>TestCase: \
複数のテストを実行するための試験装置</refpurpose>  </refnamediv>
  <refsect1 id="package.php.phpunit.testcase.desc">
   &title.desc;
   <para>
    &class.testcase;
-   TestCaseを定義する手 :
+   TestCase を定義する手 :
    
-   1) PHPUnit_TestCaseのサブクラスを実装します。
-   2) 設備の状態を保存するインスタンス変数を定義します。
-   3) setUp()をオーバーライドすることにより設備の状態を初期化します。
                
-   4) tearDown()を上書きすることによりテスト後の清掃を行います。
 +   1) PHPUnit_TestCase のサブクラスを作ります
+   2) 試験装置の状態を保存するクラス変数を定義します
+   3) setUp() をオーバーライドすることにより試験装置の状態を初期化します
 +   4) tearDown() を上書きすることによりテスト後の後片付けを行います
  
-   各テストは、各自の設備において実行されるため、テストの実行による副
                
-   作用はありません。
+   各テストは、各自の試験装置において実行されるため、テストの実行による
 +   副作用はありません。
   </para>
  </refsect1>
 </refentry>
 
-  &package.php.phpunit.testcase.example;
+  <!-- &package.php.phpunit.testcase.example; -->
   &package.php.phpunit.testcase.counttestcases;
 <!-- Keep this comment at the end of the file
 Local variables:

http://cvs.php.net/co.php/peardoc/ja/package/php/phpunit/testcase/intro.xml?r=1.1&p=1
Index: peardoc/ja/package/php/phpunit/testcase/intro.xml
+++ peardoc/ja/package/php/phpunit/testcase/intro.xml
<?xml encoding="utf-8" ?>
<!-- $Revision: 1.1 $ -->
<!-- EN-Revision: 1.3 Maintainer: haruki Status: ready -->
<!-- CREDITS: hirokawa -->
<refentry id="packages.php.phpunit.testcase.intro">
   <refnamediv>
    <refname>PHPUnit::TestCase</refname>
    <refpurpose>
     TestCase: 複数のテストを実行するための試験装置の抽象化
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>TestCase を定義する手 </title>
    <para>
    <itemizedlist>
     <listitem>
         <para>1) PHPUnit_TestCase のサブクラスを作ります</para>
     </listitem>
     <listitem>
         <para>2) クラス変数を定義し、そこに試験装置の状態を保存できるようにします</para>
  </listitem>
     <listitem>
         <para>3) setUp() \
をオーバーライドすることにより試験装置の状態を初期化します</para>
  </listitem>
     <listitem>
         <para>4) tearDown() \
を上書きすることによりテスト後の後片付けを行います</para>  \
</listitem>  </itemizedlist>
   各テストは、別個の試験装置において実行されるため、テストの実行による
  副作用はありません。
    </para>
   </refsect1>
   <refsect1>
   <title>PHPUnit::TestCase</title>
   <para>
     <programlisting role="php">
      <![CDATA[
class MathTest extends PHPUnit_TestCase {
  var $fValue1;
  var $fValue2;

  function MathTest($name) {
    $this->PHPUnit_TestCase($name);
  }

  function setUp() {
    $this->fValue1 = 2;
    $this->fValue2 = 3;
  }
}
    ]]>
     </programlisting>
    </para>
    <para>
    各テストにおいては、試験装置を利用してメソッドを実装します。
  正しい値が返されたかどうかは、assert 関数に boolean \
を渡すことで  確認します。
    </para>
    <para>
     <programlisting role="php">
      <![CDATA[
function testPass() {
  $this->assertTrue($this->fValue1 + $this->fValue2 == 5);
}
      ]]>
     </programlisting>
   </para>
   </refsect1>
</refentry>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->



-- 
PEAR Documentation List Mailing List (http://pear.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic