10

同様の質問が見つかりましたが、驚くべきことに、私が見つけたものはありません。簡単な答えを示してください...

コントローラ仕様でヘルパーメソッドをスタブしようとしています。どのオブジェクトを2倍にする必要があるかよくわかりませんか?

コントローラはこのメソッドを呼び出します:

#app/helpers/sessions_helper.rb

def signed_in?
  current_user.present?
end

true / falseを返すために、仕様でスタブしたいと思います。

4

1 に答える 1

31

コントローラの仕様からスタブすることができます:

controller.stub!(:signed_in?).and_return(true) # emulate signed in user
controller.stub!(:signed_in?).and_return(false) # emulate unsigned user

オブジェクト「コントローラー」は、コントローラーの仕様で事前定義されています。

アップデート:

RSpec 3構文の場合:

allow(controller).to receive(:signed_in?).and_return(true)
allow(controller).to receive(:signed_in?).and_return(false)

思い出させてくれた@jakeonrailsに感謝します。

于 2013-01-18T19:07:04.767 に答える