這裏是我的問題:我應該如何測試水豚的硒應用?
我寫使用硒的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測試此代碼的正確解決方案?
感謝您的幫助!