【问题标题】:rails, how to stub :user_id in session with mocha?rails,如何在与 mocha 的会话中存根:user_id?
【发布时间】:2012-01-11 21:11:03
【问题描述】:

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

我尝试了以下方法:

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

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

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

但在上述尝试中我的 session[:user_id] 为零!

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

【问题讨论】:

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


    【解决方案1】:

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

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

    所以你要存根的是

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

    【讨论】:

      猜你喜欢
      • 2015-04-23
      • 1970-01-01
      • 2011-10-24
      • 2015-01-16
      • 1970-01-01
      • 2010-12-24
      • 2012-12-02
      • 1970-01-01
      • 2014-03-30
      相关资源
      最近更新 更多