0

フィールドの一意性制約が原因で、ファクトリを実行しているときに検証エラーが発生し続けます。factory_girl で shoulda を使用しています。データベースに2つの製品を作成する単体テストと機能テストの両方があります。「rake test:units」と「rake test:functionals」を任意の順序で何度でも実行でき、すべてが緑色になりますが、「rake test」を実行してユニットに続いて機能を実行すると、一意性のためにエラーが発生します.

また、2 つの異なる単体テストで一意性を破るためにモデルを作成しようとしましたが、エラーも発生します。

私は test_helper.rb でこれらの設定をいじっていますが、何も動作しません

class ActiveSupport::TestCase
  self.use_transactional_fixtures = true
  self.use_instantiated_fixtures  = false
end

transactional_fixtures 設定はファクトリの影響を受けますか。テスト間のデータベースのクリーニングを処理する最良の方法は何ですか?

4

1 に答える 1

1

(はぁ..)

したがって、問題は、shoulda ドキュメントからコードをコピーしていて、最終的にテスト クラスを次のように宣言することでした。

class UserTest < Test::Unit::TestCase

ただし、トランザクション フィクスチャの設定が効果を発揮するには、クラスを宣言して ActiveSupport::TestCase から継承する必要があります。

class UserTest < ActiveSupport::TestCase

うまくいけば、これは他の誰かの時間を節約するのに役立ちます.

于 2010-03-23T04:52:11.073 に答える