我是一名初学者,正在学习 Ruby on Rails,但在让我的测试正常工作时遇到了问题。我正在使用 rspec 和 capybara。问题是 Capybara 没有呈现页面或没有进入正确的页面。当我执行时,该页面在浏览器中正确打开: $rails s。但是当我用 save_and_open_page 测试时,html 是空的。
我的规格
以下是我的第一个 PagesController 规范:
require 'spec_helper'
describe PagesController do
describe "GET 'home'" do
it "returns http success" do
visit pages_home_path
save_and_open_page #at this point it opens the a blank html page
end
end
end
我的控制器规格,这将打开一个空白页面。
我为 Pagescontroller 规范尝试了另一种语法:
require 'spec_helper'
describe PagesController do
describe "GET 'home'" do
it "returns http success" do
get :home
response.should render_template('home')
response.should have_content("home") #it fails here
end
end
end
这在控制台失败中显示以下错误:
1) PagesController GET 'home' 返回 http 成功失败/错误:response.should have_content("home") 期望在 "#" 中有文本 "home" # ./spec/controllers/pages_controller_spec.rb:10:in ` '中的块(3个级别)
在 1.91 秒内完成 1 个示例,1 个失败
其他配置:
在 spec_helper 我添加了以下行,其余部分保持不变。
require 'capybara/rspec'
*宝石文件:*
gem 'rails', '3.1.0'
group :development, :test do
gem 'autotest-rails'
gem 'sqlite3'
gem 'ruby-debug19', :require => 'ruby-debug'
gem 'cucumber-rails', :require => false
gem 'cucumber-rails-training-wheels'
gem 'database_cleaner'
gem 'capybara'
gem 'launchy'
gem 'rspec-rails'
gem 'simplecov'
gem 'rspec-core', '2.8.0'
end
group :assets do
gem 'therubyracer'
gem 'sass-rails', " ~> 3.1.0"
gem 'coffee-rails', "~> 3.1.0"
gem 'uglifier'
end
gem 'jquery-rails'
gem 'haml'
我还没有安装 Webrat 并验证它不在我的 Gem 列表中。谢谢您的帮助。