Temos a possibilidade de usar o create e o build para usar o model. O create salva no BD e o build cria somente o objeto.
customer = create(:customer) # ou
customer = build(:customer)
Mas além desses dois métodos temos o __attributes_for__ ,ele vai trazer apenas os atributos em um Hash dos elementos do model.
No teste:
require 'rails_helper'
RSpec.describe Customer, type: :model do
it 'Usando o Attributes_for' do
attrs = attributes_for(:customer)
attrs1 = attributes_for(:customer_vip)
attrs2 = attributes_for(:customer_default)
p attrs #mostra a hash de atributos
p attrs1
p attrs2
customer = Customer.build(attrs)
expect(customer.full_name).to start_with("Sr.")
end
end
Temos a possibilidade de usar o create e o build para usar o model. O create salva no BD e o build cria somente o objeto.
Mas além desses dois métodos temos o __attributes_for__ ,ele vai trazer apenas os atributos em um Hash dos elementos do model.
No teste: