Скорее всего, об этом спрашивали много раз, но, похоже, я ничего не могу найти, так как не уверен, что мне на самом деле нужно искать.
У меня есть модель с именем 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
spec / factory / cars.rb
FactoryBot.define do
factory :car do
reg_number "FG780WE"
# extra info from ActiveJob
color ""
Doors ""
stolen ""
finance ""
mot_expires_at ""
...
end
end