2011-02-06 4 views
5

をロードし、私は何かが欠けていることかもしれませんが、私は、このシナリオで立ち往生しています:Ruby on Railsは:まだユニットテスト以外のActiveRecordのモデルや備品

私は私がテストしたい非ActiveRecordのモデルを、持っています。私はそのテストケースクラスをTest :: Unit :: TestCaseから派生させました。

しかし、モデルのテストケースクラスは、それ自身の中で他のアクティブレコードモデルクラスを使用しており、そのためのフィクスチャをロードしたいと思います。私の問題は、私はactivesupportの::テストケース(それはactivesupportの::テストケースに含まれますのActiveRecord :: TestFixtures内で定義されている)からテストケースクラスをサブクラス化する場合にのみ器具クラスメソッドが利用可能であるということです。

テストを実行すると、未定義のメソッド "fixtures"(わかりやすい)が返され、ActiveSupport :: TestCaseからテストケースクラスを派生させた場合、対応するDBテーブルが存在しないというエラーが表示されます。また、モデルクラスをサポートするためのダミーテーブルを作成したくありません。

ありがとうございます!

答えて

4

ActiveSupport::TestCaseは、クラスがActiveRecordクラス(an example - ただし、このプロジェクトではフィクスチャを使用しません)を使用することはできません。それは、あなたがフィクスチャをどのように使用しているか、フィクスチャの設定について何かでなければなりません。おそらく、偶然、テストしようとしているこの非ARモデルのフィクスチャーファイルがありますか?

+1

ありがとうございました!実際、test_helperのフィクスチャ(:all)の部分をコメントアウトし、非ARモデルのテストクラスにロードしたいフィクスチャを明示的に宣言しています。これは、対応するDBテーブルに接続しようとしていたため、エラーが発生していました。 –

+0

非ARモデルのテストクラスで読み込みたいフィクスチャをどのように宣言しましたか? – barelyknown

+0

@VaibhavGumashtaええええええええええええええええええええええ、私も問題を引き起こしていました。私が必要とするクラスで明示的に宣言することもできます。両方の場合+1してください。 – Ben

関連する問題