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 に答える
2

私は同じ問題を抱えていましたが、私にとってうまくいった解決策は、require 'rspec/rails' を spec_helper ファイルに追加することでした。すべてのコントローラーが正しくセットアップされ、 :type => コントローラーを追加しても役に立ちませんでした。

于 2014-01-26T02:22:15.857 に答える