2

テスト方法間でフィクスチャを変更することは可能ですか? もしそうなら、どうすればこれを行うことができますか?

この問題の私の構文:

Cakephp フレームワークでは、フィールドをテーブルに追加することによって構成された動作のテストを作成しています。これは、「作成済み」フィールドと「変更済み」フィールドを追加すると、保存時にこれらのフィールドが自動入力されるのと同じように機能することを意図しています。

これをテストするために、さまざまなセットアップをテストするために数十のフィクスチャ/モデル コンボを作成できますが、テスト メソッド間でフィクスチャの「形状」を変更するだけの方が 100 倍速く、簡単です。

CakePHP フレームワークに慣れていない場合でも、 SimpleTestを使用しているため、私を助けることができるかもしれません。

編集:より一般的になるように質問を言い換えました

4

2 に答える 2

0

これは私の質問に対する回答ではなく、私の問題の例に対する解決策です。

複数のフィクスチャを使用したり、フィクスチャを変更したりする代わりに、Model::_schema 配列を編集して、テストしたくないフィールドを削除します。これには、フィールドが存在しないかのようにモデルが機能するという効果がありますが、これが 100% テストであるかどうかはわかりません。すべてのケースに当てはまるとは思いませんが、私の例では機能します。

于 2008-09-04T11:55:42.150 に答える
0

私は特に CakePHP に詳しくありませんが、この種のことはフィクスチャがあればどこでも発生するようです。

少なくともこれが発生するための方法はレールに組み込まれていません。フィクスチャの全体的な考え方は固定されているため、cakePHP や他の場所にはないと思います。

私が知っている2つの「まともな」回避策があります

  • メソッドを作成changefixtureし、asserts/etc を実行する直前に、変更対象のパラメーターを指定してメソッドを実行します。それは行ってデータベースを更新するか、実行する必要があることは何でもする必要があります。

  • フィクスチャをまったく使用せず、ある種のオブジェクト ファクトリまたはオブジェクト ジェネレータを使用して毎回オブジェクトを作成します。

于 2008-09-02T04:38:23.357 に答える