vanderleipinto / test_app

0 stars 0 forks source link

feat: attributes_for #19

Closed vanderleipinto closed 7 months ago

vanderleipinto commented 7 months ago

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