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