[[機能]] >

* Commons_Test_S2DataSourceTestCase [#lde29c20]

** 概要 [#s16ff355]
- これは、Seasar2.PHP5のデータソース(主にデータベース)用基底テストケースクラスです。
- PHPUnit_Extensions_Database_TestCase を継承し、[[S2TestCase]] の機能が追加されています。

** 主な機能 [#w1bb37dd]
-[[S2TestCase]] の機能に加え、以下の機能があります。
|~No.|~機能|~説明|~備考|
|1|データソースの自動取得|各テストごとに、S2Container オブジェクトから自動でデータソースオブジェクトを取得します。||
|2|トランザクション自動管理|*Tx という名前のテストメソッドの実行時に、自動でトランザクションの開始とロールバックを行います。||

** 使用方法 [#r03fc944]
-このテストケースクラスを継承し、必要なメソッドをオーバーライドし、テストメソッドを実装します。

*** 主なオーバライド対象メソッド [#vf202ab5]
-onSetUp 以降のメソッドはこのリストの順に実行されますので、前後関係にご注意ください。
|~No.|~メソッド|~オーバーライド|~説明|~備考|
|1|isAutoBindable|任意|フィールド名またはセッターによる自動バインドを行うか否か。デフォルトは有効。||
|2|getDataSourceName|任意|S2コンテナで管理されるデータソースオブジェクトの名前を返します。オーバーライドしない場合、自動でコンテナからS2Container_DataSource タイプのオブジェクトが検索され使用されます(ただし、S2Container_DataSource タイプのオブジェクトがコンテナ内でただ一つである必要があります)。||
|3|getSchemaName|必須|接続するデータベースのスキーマ名を返します。スキーマの概念のないMySQLの場合には、データベース名を返します。||
|4|onSetUp|任意|必要な docon ファイルをインクルードします。|setUp の代わりにこちらをオーバーライドします。|
|5|setUpAfterContainerInit|任意|コンテナ初期化直後のセットアップ。||
|6|getDataSet|必須|初期化データセットを返します。||
|7|setUpAfterBindFields|任意|フィールド自動バインド直後のセットアップ。||
|8|tearDownBeforeUnbindFields|任意|フィールド自動アンバインド直前のクリーンアップ。||
|9|tearDownBeforeContainerDestroy|任意|コンテナ破壊直前のクリーンアップ。||
|10|onTearDown|任意||tearDown の代わりにこちらをオーバーライドします。|

*** テストメソッド命名規約 [#y56a8133]
|~No.|~命名規約|~説明|~備考|
|1|setUp<テスト対象メソッド名>|テストメソッドごとの初期化メソッド。||
|2|test<テスト対象メソッド名>|テストメソッド。xUnitの一般的な命名規約。||
|3|tearDown<テスト対象メソッド名>|テストメソッドごとのクリーンアップメソッド。||
|4|*Tx|自動でテストがトランザクション管理されます。テストメソッド実行前(正確には初期化データのセットアップ前)にトランザクションが開始され、テストメソッド実行後にロールバックされます。テストデータのクリーンアップが必要なくなります。||

** 使用例 [#e782b593]
-[[S2DataSourceTestCaseTest.php>http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi/commons/trunk/src/test/php/Commons/Test/S2DataSourceTestCaseTest.php?root=phpcommons&view=markup]]

**Tips [#tfac5aeb]
-[[PHPUnitパッチ>PHPUnit]] - PHPUnit の DBUnit には(ver. 3.2.21時点)一部不具合がありますので、適宜パッチを当ててください。

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS