[英]Testing rails app with cucumber + capybara + selenium leads to blank pages
我正在嘗試用JavaScript與黃瓜1.2.1,水豚1.1.2和硒測試確認對話。 Ruby是1.9.3,RoR是3.2.6。
我的功能/env.rb是:
require 'cucumber/rails'
Capybara.default_selector = :css
Capybara.default_driver = :selenium
ActionController::Base.allow_rescue = false
begin
DatabaseCleaner.strategy = :transaction
rescue NameError
raise "You need to add database_cleaner to your Gemfile (in the :test group) if you wish to use it."
end
Cucumber::Rails::Database.javascript_strategy = :truncation
# For testing email
require 'email_spec/cucumber'
# Load FactoryGirl methods
World(FactoryGirl::Syntax::Methods)
require 'declarative_authorization/maintenance'
World(Authorization::TestHelper)
# To handle popups
require 'prickle/capybara'
World(Prickle::Capybara)
我的步驟是:
# To test popups. The popup object is define by the gem prickle
Entonces /^debería ver "([^"]*)" en un cuadro de diálogo$/ do |text|
popup.message.should have_content(text)
end
Cuando /^(cancelo|confirmo) el cuadro de diálogo$/ do |option|
popup.send(option == "cancelo" ? "dismiss" : "confirm")
end
寶石嘲笑者使用page.driver.browser.switch_to.alert(僅是快捷方式)打開這些彈出窗口。
我安裝的寶石是:
group :test do
gem 'cucumber-rails'
# database_cleaner is not required, but highly recommended
gem 'database_cleaner'
gem 'capybara'
# To test email delivery with cucumber
gem 'email_spec'
# Rspec
gem 'rspec-rails'
gem 'rspec'
# To create instance of objects in the database
gem 'factory_girl_rails'
# To generate random data
gem 'faker'
# To open pages with capybara
gem 'launchy'
#To test popups
gem 'prickle'
# To open web browser while testing and test javascript
gem 'selenium'
end
當我運行測試時,它在瀏覽器(firefox)中什么都沒有顯示。 它說“連接已重置”,當然,水豚在頁面中找不到任何元素。 如果我刪除該行:
Capybara.default_driver = :selenium
從env.rb,沒有javascript的測試正常,但是在嘗試運行彈出式窗口的步驟時顯示:
undefined method `switch_to' for #<Capybara::RackTest::Browser:0x00000005424cf8> (NoMethodError)
我可以嘗試什么? 我已經花了很多時間嘗試不同的方法,但是沒人能用。 我也嘗試過webkit,但是由於一個神秘的錯誤而無法安裝。
#language: es
Característica: Eliminar usuario
Antecedentes: Usuarios registrados
Dado que los siguientes usuarios existen:
| email | password |
| bstornelli@integra.la | b12345 |
| eliminame@integra.la | e12345 |
Y estoy autenticado como "bstornelli@integra.la"
Escenario: Eliminación exitosa
Dado que estoy autorizado para "eliminar usuario"
Cuando visito la página "ver usuario" para "eliminame@integra.la"
Y presiono "Eliminar usuario"
Entonces debería ver "¿Está seguro que desea eliminar el usuario eliminame@integra.la?" en un cuadro de diálogo
Cuando confirmo el cuadro de diálogo
Entonces debería estar en la página "listar usuarios"
Y debería ver "El usuario 'eliminame@integra.la' ha sido eliminado exitosamente"
Y no debería existir un "usuario" con "email" "eliminame@integra.la"
當我的測試數據庫沒有遷移到最新版本時,我也遇到了同樣的問題,但是由於控制台中未顯示錯誤,所以發生的事情並不明顯,我只是像您得到的那樣出現了“連接重置”錯誤。 我終於能夠通過在features / support / env.rb中設置以下內容來獲取問題出現的堆棧跟蹤
Capybara.app =機架:: ShowExceptions.new(YourRailsApp :: Application)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.