Вот моя проблема:
Я пишу приложение, в котором использует selenium-webdriver для подключения к сайту клик / заполнить кучу вещей.
Очевидно, я хочу проверить мой код ... И вот тут это становится трудным! Как мне это сделать?
Вот мой тест:
require 'spec_helper'
require 'capybara/rspec'
module MyModule
Capybara.run_server = false
describe "the method", :type => :request do
it "should open a browser and go to the site" do
MyClass.open_site("http://google.com")
page.has_content? "Google"
end
end
end
Вот код:
require 'selenium-webdriver'
module MyModule
class MyClass
def self.open_site(url)
@driver = Selenium::WebDriver.for :firefox
@driver.navigate.to url
end
end
end
Вот ошибка, которую я получаю:
Failures:
1) the method should open a browser and go to the site
Failure/Error: page.has_content? "Google"
ArgumentError:
rack-test requires a rack application, but none was given
# (eval):2:in `has_content?'
# ./spec/integration/myclass_spec.rb:10
Я могу понять, что тест сбит с толку, потому что обычно Capybara запускает Selenium, чтобы посетить сайт и убедиться, что все выглядит хорошо. Но здесь Selenium работает как часть кода ...
Как я могу сказать Rack-Test использовать запущенный Selenium в качестве своего приложения?
Является ли Capybara правильным решением для проверки этого кода?
Спасибо за вашу помощь!