Фабрика ссылается на ассоциацию в после создания - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть фабрика для учетной записи, которая связана с продуктом. При добавлении обратного вызова после создания он ссылается на продукт, а не на учетную запись.

фабрика учетных записей

FactoryBot.define do
  factory :account do
    billing_method { 'monthly' }
    workflow_state { 'active' }
  end

  after :create, &:create_api_credential
end

фабрика продуктов

FactoryBot.define do
  factory :product do
    ...
    account
  end
end

test

subject { create(:product) }
it 'has an account' do
  subject
  assert_not_nil(subject.account)
end

ошибка

 NoMethodError: undefined method `create_api_credential' for #<Product:0x00007fab7cefe2f8>

create_api_credential существует на аккаунте, а не на продукте

1 Ответ

1 голос
/ 20 февраля 2020

Вы пытались переместить: after :create, &:create_api_credential в :account блок?

factory :account do
  billing_method { 'monthly' }
  workflow_state { 'active' }

  after :create, &:create_api_credential
end
...