Stub ActiveJob与Rspec

时间:2016-07-14 08:14:45

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

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

当我运行我的测试套件时,这些更新被触发,导致很多"无法找到ID = 1234"要发布到Rollbar的错误。我想在创建虚假用户进行测试时隐藏SubscribeUserToMailingListJob,而不会影响作业本身的测试。

2 个答案:

答案 0 :(得分:0)

要实现它,您可以存根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)

答案 1 :(得分:0)

注意:新语法为

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