所以这是我的问题:
我正在为我的 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) 钩子。有任何想法吗?