rails,如何存根:与mocha会话中的user_id?

时间:2012-01-11 21:11:03

标签: ruby-on-rails-3.1 tdd rspec-rails mocha

如何使用带有Spec测试的mocha框架在:user_id中存根session

我尝试了以下内容:

  

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

     

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

     

session.expects(:[])。with(has_entries('user_id'=> 1))

但是在上面的尝试中我的会话[:user_id]为零!

所有示例都显示了如何存根对象,但会话是一个哈希数组,如何在会话中存根或模拟某个键,如:user_id或:page_id ..等?

1 个答案:

答案 0 :(得分:0)

我认为您可能在每个请求上都有一个新的会话实例,因此您必须存根每个请求。

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

那么你有什么存根是

ActionController::Session::AbstractStore::SessionHash.any_instance.stubs(:user_id).returns(1)