【发布时间】:2015-08-27 20:43:43
【问题描述】:
我正在使用 Sinatra,我的测试环境是这样设置的。
宝石文件:
gem 'rspec'
gem 'capybara'
gem 'pry'
gem 'selenium-webdriver'
spec_helper.rb
require 'view_helpers'
require 'capybara/rspec'
require 'rspec'
require 'selenium-webdriver'
Capybara.javascript_driver = :selenium
staticpages_integration_test.rb
require 'capybara/rspec'
require './app'
Capybara.app = Sinatra::Application
set :show_exceptions, false
...
describe 'the home page should not have javascript errors', {:type => :feature } do
# Enable Selenium for JavaScript testing
before :all do
Capybara.current_driver = :selenium
visit '/'
end
it 'the home page should run scripts without error', :js => true do
expect(page).not_to have_errors
end
# Disable Selenium for standard testing
after :all do
Capybara.use_default_driver
end
end
我的测试套件的其余部分加载正常,Selenium 运行并打开 firefox 浏览器,但随后输出以下错误:
Failure/Error: expect(page).not_to have_errors
expected #<Capybara::Session:0x007f8146be1e90> to respond to `has_errors?`
我错过了什么?我也尝试过使用 error_message 作为方法。问题似乎是 Selenium 没有运行/无权访问这些方法。我是否缺少依赖项?谢谢。
或者,如果有更简洁的方法来测试 js 错误,我很乐意学习。
【问题讨论】:
标签: javascript ruby selenium sinatra capybara