Skip to content

Commit

Permalink
Merge pull request cakephp#2762 from okinaka/update-testing
Browse files Browse the repository at this point in the history
[ja] update testing.rst
  • Loading branch information
markstory committed May 22, 2015
2 parents 03fea10 + fd45425 commit 9370db9
Showing 1 changed file with 93 additions and 21 deletions.
114 changes: 93 additions & 21 deletions ja/development/testing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,26 +10,35 @@ PHPUnitのインストール

CakePHPのテストフレームワークは、PHPUnitを基礎としています。PHPUnitはPHPのユニットテストにおいて
デファクトスタンダードとなっています。それはあなたが思い通りのコードを確実に書くための、
深遠で強力な機能を提供します。PHPUnitは `pear installer <http://pear.php.net>`_ でインストールすることができます。
方法は以下のとおりです::
深遠で強力な機能を提供します。

pear upgrade PEAR
pear config-set auto_discover 1
pear install pear.phpunit.de/PHPUnit-3.7.32
Composer でのインストール
-------------------------
PHPUnit の最新バージョンは、 CakePHP 上では動作しません::

"phpunit/phpunit": "3.7.32"

.phar パッケージでのインストール
--------------------------------

ファイルを直接ダウンロードします。まず、 http://phar.phpunit.de/ から適切なバージョンを取得しておきます。
そして php.ini ファイルの include_path に /usr/local/bin を加えてください。::

wget https://phar.phpunit.de/phpunit-3.7.32.phar
chmod +x phpunit.phar
mv phpunit.phar /usr/local/bin/phpunit

.. note::

PHPUnit4 はCakePHPのユニットテスト機能と互換性がありません。
システムの設定によっては、上記のコマンドを実行する際、 ``sudo`` を各行の前につける必要があります。

一旦PEARインストーラーによってPHPUnitをインストールしたら、PHPの ``include_path`` 上にPHPUnitの
ライブラリがあるか確認してください。PHPUnitのファイルが、php.iniファイルで設定されている
``include_path`` のディレクトリ以下にあるかどうか確かめることで調べられます。
システムの設定によっては、上記のコマンドを実行する際、 ``sudo`` を各行の前につける必要があります。

.. tip::

PHPUnit 3.6以上では出力が少なくなります。コマンドラインから実行するときに ``--debug``
オプションをつけるか、Webランナーを使って出力を表示するときに ``&debug=1`` とURLに付け足します。
PHPUnit 3.6 以上では全ての出力が非表示になります。表示するためには、コマンドラインから
実行するときに ``--debug`` オプションをつけるか、Web ランナーを使うときに ``&debug=1``
を URL に付け足してください。

テスト用データベースのセットアップ
==================================
Expand Down Expand Up @@ -304,20 +313,50 @@ CakePHPはフィクスチャに基づいたテストケースを実行するに

class ArticleFixture extends CakeTestFixture {

/* 任意。異なるテスト用データソースにフィクスチャを読み込む時にこのプロパティを指定してください。 */
// 任意。
// 異なるテスト用データソースにフィクスチャを読み込む時にこのプロパティを指定してください。
public $useDbConfig = 'test';
public $fields = array(
'id' => array('type' => 'integer', 'key' => 'primary'),
'title' => array('type' => 'string', 'length' => 255, 'null' => false),
'title' => array(
'type' => 'string',
'length' => 255,
'null' => false
),
'body' => 'text',
'published' => array('type' => 'integer', 'default' => '0', 'null' => false),
'published' => array(
'type' => 'integer',
'default' => '0',
'null' => false
),
'created' => 'datetime',
'updated' => 'datetime'
);
public $records = array(
array('id' => 1, 'title' => 'First Article', 'body' => 'First Article Body', 'published' => '1', 'created' => '2007-03-18 10:39:23', 'updated' => '2007-03-18 10:41:31'),
array('id' => 2, 'title' => 'Second Article', 'body' => 'Second Article Body', 'published' => '1', 'created' => '2007-03-18 10:41:23', 'updated' => '2007-03-18 10:43:31'),
array('id' => 3, 'title' => 'Third Article', 'body' => 'Third Article Body', 'published' => '1', 'created' => '2007-03-18 10:43:23', 'updated' => '2007-03-18 10:45:31')
array(
'id' => 1,
'title' => 'First Article',
'body' => 'First Article Body',
'published' => '1',
'created' => '2007-03-18 10:39:23',
'updated' => '2007-03-18 10:41:31'
),
array(
'id' => 2,
'title' => 'Second Article',
'body' => 'Second Article Body',
'published' => '1',
'created' => '2007-03-18 10:41:23',
'updated' => '2007-03-18 10:43:31'
),
array(
'id' => 3,
'title' => 'Third Article',
'body' => 'Third Article Body',
'published' => '1',
'created' => '2007-03-18 10:43:23',
'updated' => '2007-03-18 10:45:31'
)
);
}

Expand All @@ -330,7 +369,6 @@ CakePHPはフィクスチャに基づいたテストケースを実行するに
テストを実行するときにテーブル名の衝突を避けるため、フィクスチャのデータソースには
``test`` の接頭辞が必ず付きます。


``$fields`` ではテーブルを構成するフィールドと、その定義を記述します。
フィールドの定義には :php:class:`CakeSchema` と同じ書式を使います。
テーブルの定義で特に重要な変数を以下に示します。
Expand Down Expand Up @@ -456,9 +494,30 @@ CakePHP のデータベース接続においてテーブル名のプレフィッ
class ArticleFixture extends CakeTestFixture {
public $import = 'Article';
public $records = array(
array('id' => 1, 'title' => 'First Article', 'body' => 'First Article Body', 'published' => '1', 'created' => '2007-03-18 10:39:23', 'updated' => '2007-03-18 10:41:31'),
array('id' => 2, 'title' => 'Second Article', 'body' => 'Second Article Body', 'published' => '1', 'created' => '2007-03-18 10:41:23', 'updated' => '2007-03-18 10:43:31'),
array('id' => 3, 'title' => 'Third Article', 'body' => 'Third Article Body', 'published' => '1', 'created' => '2007-03-18 10:43:23', 'updated' => '2007-03-18 10:45:31')
array(
'id' => 1,
'title' => 'First Article',
'body' => 'First Article Body',
'published' => '1',
'created' => '2007-03-18 10:39:23',
'updated' => '2007-03-18 10:41:31'
),
array(
'id' => 2,
'title' => 'Second Article',
'body' => 'Second Article Body',
'published' => '1',
'created' => '2007-03-18 10:41:23',
'updated' => '2007-03-18 10:43:31'
),
array(
'id' => 3,
'title' => 'Third Article',
'body' => 'Third Article Body',
'published' => '1',
'created' => '2007-03-18 10:43:23',
'updated' => '2007-03-18 10:45:31'
)
);
}

Expand Down Expand Up @@ -497,6 +556,19 @@ CakePHP のデータベース接続においてテーブル名のプレフィッ
}
}

2.5.0 から、サブディレクトリ中のフィクスチャをロードできます。複数ディレクトリを使用することは、
大規模なアプリケーションで、フィクスチャを整理しやすくします。
サブディレクトリ中のフィクスチャをロードするためには、フィクスチャ名にサブディレクトリを加えてください::

class ArticleTest extends CakeTestCase {
public $fixtures = array('app.blog/article', 'app.blog/comment');
}

上記の例では、両方のフィクスチャは、 ``App/Test/Fixture/blog/`` からロードされます。

.. versionchanged:: 2.5
2.5.0 から、サブディレクトリ中のフィクスチャをロードできます。

モデルのテスト
==============

Expand Down

0 comments on commit 9370db9

Please sign in to comment.