我正在使用Ruby on Rails 3.2.2和rspec-rails-2.8.1。为了使我的规范文件 DRY (不要重复自己)并播种test
数据库,我想为所有这些规范文件运行before(:each)
挂钩。也就是说,在我的所有spec文件中,我都有以下代码:
describe 'test description' do
before(:each) do
load "#{Rails.root}/db/seeds.rb"
end
...
end
是否可以添加before(:each)
挂钩的“某处”,以便所有规范文件都可以运行? 您有什么建议?
答案 0 :(得分:27)
在spec_helper.rb
:
RSpec.configure do |config|
#your other config
config.before(:each) do
#your code here
end
end
有很多配置可用。例如:config.before(:each, :type => [:routing, :controller, :request])
您甚至可以创建自己的标签并将代码与其关联:
config.around :each, unobstrusive: true do |example|
Capybara.current_driver = :rack_test
example.run
Capybara.current_driver = :selenium
end
答案 1 :(得分:4)
您可以在Rspec.configure
块中添加挂钩之前/之后,通常在您的spec_helper中添加:
RSpec.configure do |config|
config.before(:each) do
...
end
end