我有一个简单的 sidekiq 工人,我不知道为什么它不起作用。我想可能是因为规格。
worker
class AdminPanelLogRemoverWorker
include Sidekiq::Worker
def perform
expired_logs = AdminPanelLog.where('created_at > ?', 1.year.ago)
expired_logs.delete_all
end
end
specs
require 'rails_helper'
describe AdminPanelLogRemoverWorker do
include_context 'with admin_user form'
subject { described_class.new.perform }
let!(:admin_panel_log1) do
create :admin_panel_log,
action_type: 'Update',
old_data: admin_user_form,
created_at: 2.years.ago
end
let!(:admin_panel_log2) do
create :admin_panel_log,
old_data: admin_user_form,
created_at: 2.days.ago
end
context 'when admin log is outdated' do
it 'calls remover worker' do
expect(AdminPanelLog.count).to eq(1)
end
end
end
admin_panel_log1and是相应的admin_panel_log2模型AdminPanelLog,它形成正确(也许我应该避免let!?)。结果规范失败并出现错误
失败/错误:expect(AdminPanelLog.count).to eq(1) expected: 1 got: 0 (比较使用 ==)