0

条件付き出力をテストするビュー仕様があります。モックアウトしたユーザーを返すように仕様を取得するにはどうすればよいですか?

ファイルを表示

.content
 - if @current_user.is_welcome == true
  Welcome to the site 

スペックを見る

before(:each) do 
  @user = mock_model(User)
  @user.stub!(:is_welcome).and_return(true)
  view.stub(:current_user).and_return(@user) 
end

it "show content" do 
  #assign(:current_user, stub_model(User, dismiss_intro: true))
  render
  rendered.should have_content("Welcome to the site")
end

スペックを実行するとundefined method is_welcome for nil:NilClass

4

2 に答える 2

1

current_userインスタンス変数ではなく、という名前のメソッドをスタブしました@current_user

view.stub(:current_user).and_return(@user)

つまり、ビューでは、次を使用する必要があります。

.content
 - if current_user.is_welcome == true
  Welcome to the site

インスタンス変数current_userを取得する代わりにメソッドを呼び出すことに注意してください。@current_user

インスタンス変数が必要な場合はcurrent_user、インスタンス変数を取得して返すメソッドを作成することをお勧めします。

于 2012-09-08T09:18:16.250 に答える