【问题标题】:undefined local variable or method `render'未定义的局部变量或方法“render”
【发布时间】:2013-04-26 04:08:08
【问题描述】:

我的 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

【问题讨论】:

    标签: ruby-on-rails-3 rspec-rails


    【解决方案1】:

    对我来说,答案是改变

    describe "messages/show.html.erb" do
    

    describe "messages/show.html.erb", type: :view do
    

    【讨论】:

      【解决方案2】:

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

      require 'spec_helper.rb'
      

      尝试将其更改为:

      require 'rails_helper.rb'
      

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

      【讨论】:

        【解决方案3】:

        您的代码第一行似乎缺少结束引号:

        需要'spec_helper

        【讨论】:

        • 不......我可能在复制粘贴时错过了它......源代码中没有丢失。我要编辑这个问题。谢谢指出
        【解决方案4】:

        你可以改变你的测试如下:

        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
        

        【讨论】:

          猜你喜欢
          • 2017-01-26
          • 2018-04-19
          • 2015-01-01
          • 2013-12-17
          • 2016-04-29
          • 2018-04-21
          相关资源
          最近更新 更多