所以这是我的问题:
我正在为我的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)钩子。有什么想法吗?
答案 0 :(得分:0)
最简单的方法是在测试后使用after(:all)
块进行清理。