2012-01-11 7 views
1

sessionに入れて、どのようにモックフレームワークをSpecテストで使用するのですか?レール、どのようにスタブする:mochaとのセッションでuser_id?

私は次のことを試してみました:

session.stubs(:USER_ID).returns(1)

session.stub!(:USER_ID).and_return(1)

セッション。

しかし、私は上記のセッション[:user_id]のためにnilを取得しようとしています(:[]])(has_entries( 'user_id' => 1)

すべての例は、オブジェクトをスタブする方法を示していますが、セッションはハッシュ配列です。user_id、または:page_idなどの特定のキーをどのようにスタブまたはモックするのですか?

答えて

0

すべてのリクエストで新しいセッションインスタンスがあると思いますので、すべてのリクエストをスタブする必要があります。

?> session.class 
=> ActionController::Session::AbstractStore::SessionHash 

だから、あなたがスタブに持っていることは

ActionController::Session::AbstractStore::SessionHash.any_instance.stubs(:user_id).returns(1) 
です
関連する問題