2012-10-31 11 views

Odpowiedz

10

W spec_helper.rb ustaw następujące:

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

To działa, ale chciałbym, aby ograniczyć to żądanie specyfikacji. Oczywiście mógłbym umieścić ten wiersz w każdym pliku specyfikacji żądania, ale chciałbym go skonfigurować globalnie. Tak jak w przypadku niektórych typów specyfikacji, możesz dołączyć określone moduły. – rubiii

+0

@rubiii zaktualizowany ze sposobem sprawdzenia dla typu specyfikacji – prusswan

+0

wygląda dobrze. Dziękuję Ci bardzo! – rubiii

8

nowszych wersjach kapibary i RSpec, ważne jest, aby sprawdzić, czy typ jest "funkcja"

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 

lub RSpec 3 (przekazać example do bloku)

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

Jeśli używasz RSpec> = 3, będziesz musiał napisać pierwszy wiersz tego, jak 'config.before (: each) do | example |', aby uzyskać takie samo zachowanie. Więcej przez @ joshua-muheim tutaj: http://stackoverflow.com/a/24571607/2948832 – styger

+1

@styger, Dzięki, zaktualizowałem odpowiedź. – justingordon