3

我的 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 添加到视图/消息中,但我应该得到另一个错误,而不是这个

奇怪的是,这在我的机器上工作了一段时间。我删除了该项目并创建了另一个项目,但现在它无法正常工作

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

bundle install
script/rails generate rspec:install
rake db:migrate
4

4 回答 4

7

对我来说,答案是改变

describe "messages/show.html.erb" do

describe "messages/show.html.erb", type: :view do
于 2015-07-16T03:15:06.527 回答
5

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

require 'spec_helper.rb'

尝试将其更改为:

require 'rails_helper.rb'

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

于 2014-10-22T02:24:04.693 回答
0

看起来您在代码的第一行缺少一个结束引号:

需要'spec_helper

于 2013-04-26T04:14:09.523 回答
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
于 2013-04-26T14:45:50.940 回答