ActiveRecord を使用して Ruby on Rails 2.3 で RSpec テストを実行すると、データベースはbefore :all
各サンプル (it
ブロック) の後にブロックの後の状態にロールバックされます。
ただし、オブジェクトのライフサイクルを指定したいと考えています。これは、多数の例を 1 つずつ調べ、状態を変更し、事後条件をテストすることを意味します。これは、ロールバック動作では不可能です。
明確にするために:
describe MyModel
before :all { @thing = MyModel.create }
it "should be settable" do
lambda { @thing.a_number = 42 }.should_not raise_exception
end
it "should remember things" do
@thing.a_number.should == 42
# this fails because the database was rolled back ☹
end
end
例で行われた変更を保持する方法はありますか?