Тестирование диалогового окна jquery с помощью capybara-webkit - PullRequest
0 голосов
/ 01 октября 2011

Я хочу проверить взаимодействие, когда пользователь нажимает на ссылку и появляется диалоговое окно jquery (http://jqueryui.com/demos/dialog/).

Я хочу проверить:

  1. Это диалоговое окно
  2. Этот текст в диалоговом окне правильный
  3. . Пользователь может выйти, нажав «x»

. Я протестировал диалог вручную, и он работаетно меня интересует, как бы я написал реальную спецификацию. Я хотел бы сделать это с помощью Capybara-webkit, но я не смог найти примеры кода для фактического использования Capybara-webkit.

Яиспользуя Capybara-webkit и спецификации, но не огурец.

1 Ответ

1 голос
/ 06 ноября 2011

Вот как это сделать:

Ресурсы

Установка

Убедитесь, что ваш Gemfile содержит capybara-webkit, rspec-rails и database_cleaner:

group :development, :test do
  gem 'rspec-rails', '~> 2.7.0'
  gem 'capybara-webkit', '~> 0.7.2'
  gem 'database_cleaner', '~> 0.6.7'
end

Вам нужен database_cleaner, потому что транзакции базы данных несовместимы с драйверами rspec, кроме Rack :: Test:

RSpec.configure do |config|

#...

  config.use_transactional_fixtures = false

  config.before(:suite) do
    DatabaseCleaner.strategy = :truncation
  end

  config.before(:each) do
    DatabaseCleaner.start
  end

  config.after(:each) do
    DatabaseCleaner.clean
  end

end

Вы все равно должны использовать флаг: js => true в своих тестах. Оказывается, это не только функция селена:

describe "Something" do
  it "uses javascript", :js => true do
     pending "write a test"
  end
end

И, конечно же, require 'capybara/rspec' и установите Capybara.javascript_driver = :webkit в вашем spec_helper:

#...

ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'capybara/rspec'
Capybara.javascript_driver = :webkit

#...

Это должно быть все, что нужно для запуска и запуска capybara-webkit и rspec.

...