2012-04-02 4 views
1

Ich verwende Ruby on Rails 3.2.2, Gurke-Schienen-1.3.0, Rspec-Schienen-2.8.1 und Capybara-1.1.2 mit dem Selenium-Treiber. Nach Erhalt der Antwort auf eine meine previous question hatte ich einen Zweifel: sollte ich den Selen Rubin-Edelstein oder den Jasmine Rubin-Edelstein verwenden, um Ansichtsdateien mit RSpec zu prüfen? Wenn ja, da ich bereits Selenium verwende, um JavaScript für View-Dateien mit Cucumber zu testen, warum (beim Testen mit RSpec) sollte ich Jasmine anstelle von Selen verwenden? Das heißt, warum zwei Rubine zu verwenden, die denselben Zweck haben und die gleichen Dinge machen?Soll ich Selenium oder Jasmine verwenden, um Ansichtsdateien mit RSpec zu testen?

Allgemein und praktisch, Wie empfehlen Sie, Ansichtsdateien mit RSpec zu testen? ... aber, ist es der "richtige Weg", um View-Dateien mit RSpec zu testen oder sollte ich diese mit Gurke testen?

Antwort

2

Ich bevorzuge Selen-Server, die Selenium-IDE in Firefox zu erfassen und Selen-Client für RSPEC.

selenium_helper.rb

ENV["RAILS_ENV"] ||= 'test' 
require File.expand_path(File.join(File.dirname(__FILE__),'../..','config','environment')) 
require 'spec/autorun' 
require 'spec/rails' 
require 'factory_girl' 
require 'rspec/instafail' 
require "selenium/client" 

Spec::Runner.configure do |config| 
end 

rspec_tester_file_spec.rb

require "selenium/selenium_helper" 
    require "selenium/modules/loginator" 

    describe "tester" do 
     attr_reader :selenium_driver 
     alias :page :selenium_driver 

     before(:all) do 
     @verification_errors = [] 
     @selenium_driver = Selenium::Client::Driver.new \ 
      :host => "localhost", 
      :port => 4444, 
      :browser => "*firefox", 
      :url => "http://localhost:3000", 
      :timeout_in_second => 60 
     end 

     before(:each) do 
     @selenium_driver.start_new_browser_session 
     end 

     append_after(:each) do 
     @selenium_driver.close_current_browser_session 
     end 

     it "login and then try to search for stuff" do 
     @login.run_login(page) 
     page.click "link=CSR" 
     page.wait_for_page_to_load "30000" 
     page.type "id=isq_Name", "john smith" 
     page.click "css=input[type=\"submit\"]" 
     page.wait_for_page_to_load "30000" 
     page.is_text_present("Update") 
     page.is_text_present("Date") 
     page.is_text_present("PIN")  
     page.is_text_present("Name") 
     end 
+0

Ich möchte auch hinzufügen, dass ich Jasmin tun verwenden, aber nur für Javascript-Tests und für nie basierte Tests Ansicht. Außerdem, wenn ich eine JavaScript-Funktion habe, die mit Jasmin getestet werden kann, werde ich das tun, aber nicht, wenn es UI-Elemente verändert. UI-Elemente überprüfe ich mit Selen. – earlonrails