这很有可能被多次询问,但我似乎找不到任何东西,因为我不确定我应该搜索什么。
我有一个名为car
的模型,它有一个after_commit :new_car, on: :create
,在new_car
方法中,我有一个ActiveJob类,它会关闭并调用一些API来获取有关的额外信息车。我将如何使用RSpec和FactoryBot进行测试?当我调用FactoryBot.create(:car)
时,我想要额外的信息,所以我可以确认数据库中的列有值,因为我在作业完成后将记录状态设置为complete
,这反过来会显示记录给最终用户。您可能已经猜到FactoryBot.create(:car)
由于after_commit
回调而无法正常工作。代码如下。如果某些内容没有意义或者您需要查看更多代码,请告诉我。谢谢。
car.rb
class Car < ApplicationRecord
enum status: [:complete, :in_progress, :failed]
after_commit :new_car, on: :create
def new_car
NewCarJob.perform_later(self.id)
end
end
规格/工厂/ cars.rb
FactoryBot.define do
factory :car do
reg_number "FG780WE"
# extra info from ActiveJob
color ""
Doors ""
stolen ""
finance ""
mot_expires_at ""
...
end
end