rspecを使用してコントローラーメソッドをテストするにはどうすればよいですか? 質問する

rspecを使用してコントローラーメソッドをテストするにはどうすればよいですか? 質問する

私はRSpecを学ぼうとしています。Railsコントローラメソッドをテストできないようです。テストでメソッドを呼び出すと、RSpecは未定義メソッドエラーを返します。これが私のテスト例です。

it 'should return 99 if large' do
  GamesController.testme(1000).should == 99
end

そしてここにエラーがあります:

 Failure/Error: GamesController.testme(1000).should == 99
 NoMethodError:
   undefined method `testme' for GamesController:Class

GamesController に testme メソッドがあります。テスト コードがメソッドを認識できない理由がわかりません。

どのような助けでも大歓迎です。

ベストアンサー1

正しい方法はこれだと思います:

describe GamesController do
  it 'should return 99 if large' do
    controller.testme(1000).should == 99
  end
end

Railsのコントローラ仕様では、コントローラクラスを に配置すると、メソッドを使用してインスタンスを取得describeできます。 :Pもちろん、メソッドがプライベートの場合は、 を使用する必要があります。controller
testmecontroller.send :testme

おすすめ記事