【问题标题】:Stub ActiveJob with Rspec使用 Rspec 存根 ActiveJob
【发布时间】:2016-07-14 08:14:44
【问题描述】:

我有一个活跃的工作SubscribeUserToMailingListJob,每次使用 after_commit 回调创建用户时都会更新我的 Mailchimp 列表。

当我运行我的测试套件时,这些更新被触发,导致许多“找不到 ID=1234 的模型”错误被发布到 Rollbar。在创建虚假用户进行测试时,我想删除 SubscribeUserToMailingListJob,而不影响工作本身的测试。

【问题讨论】:

    标签: ruby-on-rails rspec rails-activejob


    【解决方案1】:

    要实现它,您可以存根 after_commit 中使用的方法 使用 rspec-mocks https://relishapp.com/rspec/rspec-mocks/v/2-6/docs/method-stubs/stub-on-any-instance-of-a-class

    你可以这样做: Model.any_instance.stubs(:the_after_commit_method)

    【讨论】:

      【解决方案2】:

      注意:新语法是

      allow(User).to receive(:find_by).and_return(user)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-31
        • 1970-01-01
        相关资源
        最近更新 更多