1

从 Rspec - Controllers 运行以下代码后,我从该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>

否。外部系统进程正在监视应用程序,每当它确定发生此类问题时,它就会终止应用程序。当这种杀戮发生时,没有办法运行你自己的代码,也没有办法获得为什么会发生这种杀戮的信息。

然后,该系统进程会生成任意崩溃报告,这些报告会发送到 iTunes Connect。

4

3 回答 3

6

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

describe PostsController do
   ...
end

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

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

另请参阅此答案:#<RSpec::Core::ExampleGroup::Nested_1:0x00000106db51f8> 的未定义方法 `get'

于 2012-10-03T12:32:43.540 回答
4

如果您使用的是“spec/features”,您可能需要将以下内容添加到您的“spec_helper.rb”中

config.include RSpec::Rails::RequestExampleGroup, type: :feature
于 2013-02-20T15:46:44.740 回答
2

我遇到了同样的问题,对我有用的解决方案是将 require 'rspec/rails' 添加到我的 spec_helper 文件中。我所有的控制器都设置正确,添加 :type => 控制器没有帮助。

于 2014-01-26T02:22:15.857 回答