未定义的方法`get'for#

时间:2012-10-03 11:38:39

标签: ruby rspec get controllers

从Rspec运行以下代码 - 控制器后,我从get方法

收到错误
it "assigns @MyItems" do
  my_item = mock(:mypay_items)
  my_item = mock( MyItem)
  MyItem.should_receive(:all).and_return(my)
  get 'index'
  assigns[:my_items].should eql(my_items)
  response.should be_success
end 

导致错误:

undefined method `get' for #<RSpec::Core::ExampleGroup::Nested_1:0x34b6ae0>

3 个答案:

答案 0 :(得分:6)

您似乎没有正确地将规范声明为控制器规范,这导致HTTP请求方法(getpost等)无法使用。确保在规范的顶部,您有类似的内容:

describe PostsController do
   ...
end

PostsController替换为您的控制器名称。如果这不起作用,请添加:type => :controller

describe PostsController, :type => :controller do
   ...
end

另见答案:undefined method `get' for #<RSpec::Core::ExampleGroup::Nested_1:0x00000106db51f8>

答案 1 :(得分:4)

如果您使用的是“规格/功能”,则可能需要在“spec_helper.rb”中添加以下内容

config.include RSpec::Rails::RequestExampleGroup, type: :feature

答案 2 :(得分:2)

我遇到了同样的问题,而且对我有用的解决方案是添加require&#rs; / rails&#39;到我的spec_helper文件。我的所有控制器都已正确设置并添加:type =&gt;控制器没有帮助。