before :all
在使用 ActiveRecord 在 Ruby on Rails 2.3 中运行 RSpec 测试时,数据库会在每个示例(it
块)之后回滚到块之后的状态。
但是,我想指定一个对象的生命周期,这意味着一个一个地经历许多示例,更改状态并测试后置条件。这对于回滚行为是不可能的。
所以澄清一下:
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
有什么方法可以保留示例中所做的更改吗?