在带有
Ruby 2的Rails 3.2.14应用程序中,使用rspec-rails 2.14.0和capybara 2.1.0,以下功能规格导致失败:
require 'spec_helper' feature 'View the homepage' do scenario 'user sees relevant page title' do visit root_path expect(page).to have_css('title',text: "Todo") end end
失败的消息是:
1) View the homepage user sees relevant page title Failure/Error: expect(page).to have_css('title',text: "Todo") Capybara::ExpectationNotMet: expected to find css "title" with text "Todo" but there were no matches. Also found "",which matched the selector but not all filters.
但是当我在功能规格中更改这一行时:
expect(page).to have_css('title',text: "Todo")
到这个:
page.has_css?('title',text: "Todo")
然后测试通过. [编辑 – 但是从@JustinKo看到这个测试不是一个很好的测试,因为它总是会通过]
如何获得has_css(…)表单的工作?是配置问题吗?
这是我的Gemfile的相关部分:
group :development,:test do gem 'rspec-rails' gem 'capybara' end
而我的spec / spec_helper.rb设置如下:
ENV["RAILS_ENV"] ||= 'test' require File.expand_path("../../config/environment",__FILE__) require 'rspec/rails' require 'rspec/autorun' require 'capybara/rails' require 'capybara/rspec' Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f } RSpec.configure do |config| # out of the Box rspec config code ommitted config.include Capybara::DSL end
任何人知道我可能做错了什么?