2016-07-28 10 views
5

私はいくつかの仕事をするコントローラにパブリックメソッドをいくつか作成しました。Rails - Rspec - stub params

def current_service 
    service_name = params[:controller].gsub('api/v1/', '').gsub(%r{/.+}, '') 
end 

私はRSpecのを使用してこのメ​​ソッドをテストしたいと思いますが、私はのparamsをスタブできる方法を知っているdont't。私はどうしたらいいですか?これは、コントローラの仕様がある場合

+1

これは質問ではありません。 – mudasobwa

+1

あなたは正しいです、私は質問を追加しました。 – mike927

答えて

7

、あなたはこのような何かを行うことができるはず:

allow(controller).to receive(:params).and_return({controller: 'a value'}) 

はまた、あなたの仕様に別のメソッドとスタブに params[:controller]文を移動すること。

+0

素晴らしい答え。私の問題は、 'controller'の代わりに' describe_class'を使用していたため、エラーが発生しました。ありがとうございました。 – mike927

+0

強力なパラメータテストはどうですか? – Pachonk