Para esta aula vamos adicionar has_many :orders ao model Customer
class Customer < ApplicationRecord
has_many :orders
def full_name
"Sr. #{name}"
end
end
Na factory criaremos mais um atribuno no transient chamado qtt_orders 3 (quantidade de orders 3)
transient do
upcased {false} #valor que pode ser mudado na criação do objeto - customer = create(:customer, upcased: true)
qtt_orders {3}
end
E faremos um trait com um callback para criar uma lista de orders e inserir o transient no customer criado.
trait :with_orders do
after(:create) do |customer, evaluator|
create_list(:order, evaluator.qtt_orders, customer: customer)
end
end
No teste fica assim:
it 'has_many' do
customer = create(:customer, :with_orders)
puts customer.inspect
puts customer.orders.inspect
expect(customer.orders.count).to eq(3)
end
também podemos sobrescrever a quantidade de orders:
Video
Para esta aula vamos adicionar
has_many :orders
ao model CustomerNa factory criaremos mais um atribuno no transient chamado qtt_orders 3 (quantidade de orders 3)
E faremos um trait com um callback para criar uma lista de orders e inserir o transient no customer criado.
No teste fica assim:
também podemos sobrescrever a quantidade de orders:
Também podemos criar um factory padrão de custumer_with_order:
E no teste fica assim: