current_user
メソッドのレスポンスをRspec/capybaraリクエスト仕様でスタブする必要があります。このメソッドはApplicationController
で定義されており、helper_methodを使用しています。メソッドは単純にユーザーIDを返す必要があります。テストでは、このメソッドが毎回同じユーザーIDを返すようにしたいと思います。リクエスト仕様のApplicationControllerメソッドをスタブする方法
また、session[:user_id]
を仕様(これはcurrent_user
が返すものです)に設定することで問題を解決することもできますが、それでも問題はありません。
いずれか可能ですか?
編集:ここでは
は(それが機能していないそれはちょうど、通常のCURRENT_USERメソッドを実行します。)私が持っているものです。また、機能していない
require 'spec_helper'
describe "Login" do
before(:each) do
ApplicationController.stub(:current_user).and_return(User.first)
end
it "logs in" do
visit '/'
page.should have_content("Hey there user!")
end
end
:
require 'spec_helper'
describe "Login" do
before(:each) do
@mock_controller = mock("ApplicationController")
@mock_controller.stub(:current_user).and_return(User.first)
end
it "logs in" do
visit '/'
page.should have_content("Hey there user!")
end
end
で説明したようにビューのメソッドをスタブすることによってこれを解決?私はないと思う。したがって、 'ApplicationController.stub(:current_user)'の代わりに 'ApplicationController.any_instance.stub(:current_user)'が必要な場合があります。 – skalee