2012-10-31 24 views

回答

10

在spec_helper.rb,設置如下:

config.before(:each) do 
    if example.metadata[:type] == :request 
     Capybara.current_driver = :selenium # or equivalent javascript driver you are using 
    else 
     Capybara.use_default_driver # presumed to be :rack_test 
    end 
    end 
+0

這是有效的,但我想限制這個請求規格。當然,我可以將這一行放在每個請求規範文件中,但我想要全局配置它。有點像你可以包含某些特定類型的特定模塊。 – rubiii

+0

@rubiii更新了一種方法來檢查規格類型 – prusswan

+0

看起來不錯。非常感謝你! – rubiii

8

對於水豚和RSpec的後續版本,它來檢查類型爲 「功能」

config.before(:each) do 
    if [:request, :feature].include? example.metadata[:type] 
    Capybara.current_driver = :poltergeist # or equivalent javascript driver you are using 
    else 
    Capybara.use_default_driver # presumed to be :rack_test 
    end 
end 

或RSpec的3是非常重要的(通過example成塊)

config.before(:each) do |example| 
    if [:request, :feature].include? example.metadata[:type] 
    Capybara.current_driver = :poltergeist # or equivalent javascript driver you are using 
    else 
    Capybara.use_default_driver # presumed to be :rack_test 
    end 
end 
+0

如果您使用的是RSpec> = 3,則需要編寫像config.before(:each)do | example |'這樣的第一行來獲得相同的行爲。更多通過@ joshua-muheim在這裏:http://stackoverflow.com/a/24571607/2948832 – styger

+1

@styger,謝謝,我更新了答案。 – justingordon

相關問題