我正在使用sidekiq对作业进行排队以验证模型(链接)上字段的输入,并访问该链接以确保它在通过正则表达式验证时不返回404。
如果正则表达式验证通过且链接未返回404,我将另一个属性分配给同一模型但在另一个字段上。
通过调用方法触发worker,该方法在after_commit, on: :update
回调
如果'previous_changes ['我使用的json对象进行更改']'为true,则该方法仅触发worker。这样工人就不会继续被一遍又一遍地打电话。
所有这些都在开发中运行良好,通过QA自己确认多个用例
我正在尝试在MiniTest中编写一个测试,以确保当模型的json字段发生更改但工作者没有排队时工作人员排队,而在我的生活中,我无法弄清楚原因。
我正在测试对排队的工人的期望:
assert_difference 'WorkerClass.jobs.size' do
site = sites(:site_from_fixtures)
site.attribute_that_triggers_change = { "random" => "json_object" }
site.save
end
测试返回:“预期:1,实际:0”
非常感谢任何输入!
答案 0 :(得分:1)
通过安装test_after_commit gem。
修复了此问题显然after_commit不会在测试中触发,除非您使用该gem或在test_helper中指定必要的更改。我选择了gem选项只是为了让事情变得更容易。