【发布时间】:2017-04-21 21:09:42
【问题描述】:
如果记录成功保存,我有一个调用 ActiveJob 的创建操作。
def create
@object = Object.new(importer_params)
respond_to do |format|
if @object.save
MyJob.perform_later( @object.id )
format.html { redirect_to @object, notice: t('.notice') }
else
format.html { render :new }
end
end
end
我想测试在控制器规范中是否正确调用了作业。
describe "POST #create" do
it {
expect {
post :create, { object: valid_attributes }
}.to change(Object, :count).by(1)
}
it {
expect {
post :create, { object: valid_attributes }
}.to have_enqueued_job(MyJob)
}
end
但我明白了
Failure/Error:
expect {
post :create, { object: valid_attributes }
}.to have_enqueued_job(MyJob)
expected to enqueue exactly 1 jobs, but enqueued 0
第一个测试通过了,所以我知道对象保存成功了。测试 ActiveJob 是否入队的正确方法是什么?
【问题讨论】:
标签: ruby-on-rails rspec rails-activejob