RSpec, FactoryBot и обратные вызовы модели с ActiveJob - PullRequest
0 голосов
/ 31 мая 2018

Скорее всего, об этом спрашивали много раз, но, похоже, я ничего не могу найти, так как не уверен, что мне на самом деле нужно искать.

У меня есть модель с именем 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
...