2012-10-31 9 views

risposta

10

In spec_helper.rb, impostare le seguenti:

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

che funziona, ma mi piacerebbe limitare questo per richiedere specifiche. Ovviamente potrei mettere questa linea in ogni singolo file spec richiesto, ma mi piacerebbe configurarlo a livello globale. Un po 'come è possibile includere moduli specifici per determinati tipi di specifiche. – rubiii

+0

@rubiii aggiornato con un modo per verificare il tipo di specifica – prusswan

+0

sembra buono. Grazie mille! – rubiii

8

Per le versioni successive di capibara e RSpec, è importante per verificare il tipo di essere "caratteristica"

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 

o per RSpec 3 (passare example nel blocco)

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

Se si utilizza RSpec> = 3, sarà necessario scrivere la prima riga di questo come 'config.before (: each) do | example |' per ottenere lo stesso comportamento. Più via @ joshua-muheim qui: http://stackoverflow.com/a/24571607/2948832 – styger

+1

@styger, Grazie, ho aggiornato la risposta. – justingordon

Problemi correlati