1

Rails で単体テストを行っています。テストしているモデルは、内部的な理由で Sequel を使用していますが、テスト データは factory_girl を使用して作成されており、テスト全体をアクティブ レコード トランザクションでラップしているようです。使用できますself.use_transactional_fixtures = falseが、テストが完了した後、テストデータをデータベースに残さない方法があるかどうか疑問に思っていました。

4

1 に答える 1

0

使用しているテスト ライブラリがわかりません。RSpec 1 の場合、以下は各仕様の例を独自のトランザクションで実行します。

class Spec::Example::ExampleGroup
  def execute(*args, &block)
    x = nil
    Sequel::Model.db.transaction{x = super(*args, &block); raise Sequel::Error::Rollback}
    x
  end
end

RSpec 2 では、around フィルターを使用して同じことを実現できます。テスト/ユニットでそれを行う方法がわかりません。おそらく、Test::Unit::TestCase#run をオーバーライドする必要があります。

于 2011-05-24T16:31:59.303 に答える