0

現在、CakePHP アプリケーションの単体テストを作成中です。datasource私は自分のモデルのいくつかをカスタムしています。これは読み取り専用のデータソースです。このデータソースを使用して単体テストを実行したいのですが、うまくいきません。

上部に次のフィクスチャを作成しました。

public $useDbConfig = 'test_datafeeds';

しかし、大量のエラーが返されます。DataTest からすべてのフィクスチャを削除すると機能しますが、実際のデータベース内の実際のデータもすべて使用します。テストでは、データベース内のデータに送信したダミー データを使用することをお勧めします。

ダミーデータを使用してデータソースをモックする静的フィクスチャを作成することができましたが、テストで実際のデータソースを使用するオプションも好みます。

私が得ているエラーのいくつか:

Notice: Undefined index: prefix in lib/Cake/TestSuite/Fixture/CakeFixtureManager.php on line 169

Warning: in_array() expects parameter 2 to be array, null given in lib/Cake/TestSuite/Fixture/CakeFixtureManager.php on line 171

Warning: in_array() expects parameter 2 to be array, null given in lib/Cake/TestSuite/Fixture/CakeFixtureManager.php on line 174

Fatal error: Call to undefined method DataFeedSource::execute() in lib/Cake/Test/Suite/Fixture/CakeTestFixture.php on line 194
4

1 に答える 1

0

これが最善の方法かどうかはわかりませんが、私にとってはうまくいきます。public $useDbConfig = 'test_datafeeds'; を削除しました。フィクスチャから、それは動作します。構成ファイルに test_datafeed 構成を入れるだけで機能するようです。

静的フィクスチャをそのままにしておき、コメントアウトして test_datafeed のオンとオフを切り替えることができるので、非常に便利です。

于 2012-12-24T00:12:18.520 に答える