我的rspec代码中出现以下错误
undefined local variable or method `render'
这是我的代码:
require 'spec_helper'
describe "messages/show.html.erb" do
it "displays the text attribute of the message" do
render
rendered.should contain("Hello world!")
end
end
这来自书:RSpec书 以下是我添加到Gemfile的内容。
group :development , :test do
gem "rspec-rails", ">= 2.0.0"
gem "webrat", ">= 0.7.2"
end
我没有将文件show.html.erb添加到views / messages中,但是我应该收到另一个错误,而不是
奇怪的是,这在我的机器上工作了一段时间。我删除了项目并创建了另一个项目,现在它无法正常工作
我在编辑gemfile后发出了这些命令
bundle install
script/rails generate rspec:install
rake db:migrate
答案 0 :(得分:5)
对我来说,答案是改变
describe "messages/show.html.erb" do
到
describe "messages/show.html.erb", type: :view do
答案 1 :(得分:3)
如果您的show.html.erb_spec.rb文件包含:
require 'spec_helper.rb'
尝试将其更改为:
require 'rails_helper.rb'
说明: https://www.relishapp.com/rspec/rspec-rails/docs/upgrade
答案 2 :(得分:0)
您的代码的第一行似乎缺少结束语:
要求'spec_helper
答案 3 :(得分:0)
你可以改变你的测试,如下所示:
require 'spec_helper'
describe "messages/show.html.erb" do
it "displays the text attribute of the message" do
FactoryGirl.create(:message) # or an other test data creator gem
visit "/messages/1"
page.should have_content("Hello world!")
end
end