2

アカウントのステータスを更新するメールを送信するシェルがあります。今日このメールを受信する必要がある人のリストを編集するために、適切なfind('all')クエリを実行して受信者のリストを返すメソッドがあります。このリストが正しく生成されていることを確認するために、このメソッドの単体テストを行いたいと思います。

ただし、Personフィクスチャに応じて2つの単体テストがあります。Personモデルのテストとこのシェルテストです。Personモデルテストからの余分な混乱により、シェルテストに焦点を合わせたデータセットを準備するのが面倒になります。テストは完了しました。一方のデータセットを変更すると、もう一方が破損する可能性があります。

コンテキストに応じて、同じフィクスチャに個別のデータセットを簡単に定義できますか?個別のテスト用に個別のフィクスチャを作成できますか?どのように?

4

1 に答える 1

2

必要な数のフィクスチャを作成できます。次の宣言を使用して、TestCaseによってロードされるフィクスチャを選択できますpublic $fixtures = array('app.Fixture1', 'app.Ficture2', etc...);

デフォルトのデータベース接続からテーブル情報をインポートできるため、同じモデル(PersonFixture1、PersonFixture2)に対して複数のフィクスチャを簡単に作成できます。 http://book.cakephp.org/2.0/en/development/testing.html#importing-table-information-and-records

また、フィクスチャのinitメソッドをオーバーライドして、レコードデータを動的にロードする(つまり、タイムスタンプを変更する)ことができます。
http://book.cakephp.org/2.0/en/development/testing.html#dynamic-data-and-fixtures

お役に立てれば。

于 2012-10-16T02:09:18.463 に答える