undefined局部变量或方法`render'

use*_*327 3 rspec-rails ruby-on-rails-3

我的rspec代码中出现以下错误

undefined local variable or method `render'
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

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
Run Code Online (Sandbox Code Playgroud)

这是本书:下面的RSpec书是我添加到Gemfile的.

group :development , :test do
   gem "rspec-rails", ">= 2.0.0"
   gem "webrat", ">= 0.7.2"
end
Run Code Online (Sandbox Code Playgroud)

我没有将文件show.html.erb添加到views/messages中,但我应该收到另一个错误,而不是这个

奇怪的是,这在我的机器上工作了一段时间.我删除了项目并创建了另一个项目,现在它不起作用

我在编辑gemfile后发出了这些命令

bundle install
script/rails generate rspec:install
rake db:migrate
Run Code Online (Sandbox Code Playgroud)

小智 6

如果您的 show.html.erb_spec.rb 文件包含:

require 'spec_helper.rb'
Run Code Online (Sandbox Code Playgroud)

尝试将其更改为:

require 'rails_helper.rb'
Run Code Online (Sandbox Code Playgroud)

说明: https: //www.relishapp.com/rspec/rspec-rails/docs/upgrade


l2s*_*ver 6

对我来说,答案是改变

describe "messages/show.html.erb" do
Run Code Online (Sandbox Code Playgroud)

describe "messages/show.html.erb", type: :view do
Run Code Online (Sandbox Code Playgroud)