查看规范没有渲染方法

时间:2014-09-17 09:08:27

标签: ruby-on-rails rspec

我正在尝试编写一些测试某些模板逻辑的视图规范。我遵循RSpec书中的说明,并检查其他在线参考。我似乎无法访问renderassign

require "spec_helper"

describe "projects/index.html.erb" do

  it "displays an entry for each project" do
    projects = 5.times { FactoryGirl.create :project }
    render
    expect(all(".project-index-entry").count).to eq 5
  end

end

当我运行上述内容时,我得到:

 Failure/Error: render
 NameError:
   undefined local variable or method `render' for #<RSpec::ExampleGroups::ProjectsIndexHtmlErb:0x007fa2950d4140>
 # ./spec/views/projects/index.html.erb_spec.rb:7:in `block (2 levels) in <top (required)>'

如果我尝试使用assign,也会发生同样的事情。我知道我可以使用visit,但是我必须在每个规范之前模拟用户登录的行为。我可能会被误解,但我认为渲染方法更加孤立,允许我跳过控制器中的身份验证检查。

那么,为什么我没有我期待的视图规范方法?

Versions:
 - capybara 2.4.1
 - rails 4.1.0
 - rspec-core 3.1.3
 - rspec-expectations 3.1.1
 - rspec-mocks 3.1.0
 - rspec-rails 3.1.0

1 个答案:

答案 0 :(得分:1)

事实证明,我前段时间更新了rspec,之前的版本使用了明显不同的spec_helper。更新后,逻辑分为spec_helperrails_helper,因此要解决此问题,我必须重新运行rails generate rspec:install