だからここに私の問題があります:
私は自分の Rails モデルの単体テストを作成しており、実行するためにそれぞれが同じセットアップを必要とする一連の例があります。私が間違っていなければ、複数の RSpec テストに対して同じように設定する通常の方法は、次のように before(:each) ブロックを使用することです。
describe Model do
before(:each) do
# Complex setup
end
# Examples
end
残念ながら、このセットアップを必要とするサンプルのセットはかなり大きくなり始めており、すべてのテストでこの複雑なセットアップ手順を完了するには長い時間がかかります。私はこれをやってみました:
describe Model do
before(:all) do
# Complex setup
end
# Examples
end
しかし、この方法ではセットアップが完了してもロールバックされないため、後のテストで問題が発生します。私が本当にしたいのは、次のようなことです:
describe Model do
around(:all) do |examples|
transaction do
# Complex setup
examples.run
raise ActiveRecord::Rollback
end
end
# Examples
end
ただし、RSpec は現在 around(:all) フックをサポートしていません。何か案は?