2
votes

I am using Ruby on Rails 3.2.2, cucumber-rails-1.3.0, rspec-rails-2.8.1 and capybara-1.1.2 with the Selenium driver. After receiving the answer to a my previous question I had a doubt: should I use the Selenium ruby-gem or the Jasmine ruby-gem in order to test view files with RSpec? If so, since I am already using Selenium in order to test JavaScript for view files with Cucumber, why (when testing with RSpec) should I use Jasmine instead of Selenium? That is, why to use two ruby-gems that have the same purpose and make the same things?

Generally and practically speaking, how do you advice to test view files by using RSpec? ... but, is it the "right way" to test view files with RSpec or should I test those by using Cucumber?

1

1 Answers

2
votes

I prefer to use selenium server, the selenium IDE in firefox to record and selenium client for 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