黄瓜:在所有情况下钩子只运行一次之前
我有一个包含多个场景的场景大纲。 我希望我的Before钩子只运行一次所以我可以引导我需要针对所有场景运行的ActiveRecord对象。 问题是如果我使用
Before do # my code here end
这将在每个场景之前执行。 反正有没有为整个大纲运行一次?
我想如果您只是在function/支持的文件中创建对象,它们将被保留:
ImportantThing.create(:name => "USEFUL THING")
这是因为在每个场景之前,Cucumber将启动数据库事务,然后回滚到其先前状态,该状态应该包含您已加载的对象。
我遇到了同样的问题,我需要为所有事件记录测试创建一次订阅者管理器。 如果我只使用了前钩子或常规步骤(例如给定),则会在每个场景之前创建管理器。
我的解决方案最终是在我的第一个场景中使用挂钩之前标记的。
Before('@first_logging_scenario') do # do something useful end
为了关闭我的经理,我在上一个场景中使用了标记的After hook
After('@last_logging_scenario') do # do something useful end
- 间谍是否适合查看Resque方法是否被解雇?
- RSpec:ActionView :: Template :: Error:nil的未定义方法`full_name’:NilClass
- ruby rspec不会使用simplecov
- 耙黄瓜和耙子规格总是使用“开发”环境
- 在Rails引擎规范中使用正确的url_for方法
- 路由规范是否支持重定向路由?
- rail3 / rspec / devise:除非我添加一个dummy = subject.current_user.inspect,否则rspec控制器测试失败
- 在为ruby运行rspec时如何更改环境变量?
- Capybara + Poltergeist与Database-cleaner没有找到FactoryGirl记录