黄瓜:在所有情况下钩子运行一次之前

ran*_*its 9 ruby rspec ruby-on-rails cucumber

我有一个包含多个场景的场景大纲.我希望我的Before钩子只运行一次所以我可以引导我需要针对所有场景运行的ActiveRecord对象.问题是如果我使用

Before do
    # my code here
end
Run Code Online (Sandbox Code Playgroud)

这将在每个场景之前执行.反正有没有为整个大纲运行一次?

Rya*_*igg 4

我认为如果您只是在功能/支持的文件中创建对象,它们将被持久化:

ImportantThing.create(:name => "USEFUL THING")
Run Code Online (Sandbox Code Playgroud)

这是因为在每个 Scenario Cucumber 之前都会启动一个数据库事务,然后回滚到其之前的状态,其中应该包含您已加载的对象。