vanderleipinto / test_app

0 stars 0 forks source link

Gem Faker #9

Closed vanderleipinto closed 7 months ago

vanderleipinto commented 7 months ago

A gem Faker é uma biblioteca muito útil em Ruby que permite gerar dados fictícios de maneira realista. Esses dados fictícios podem ser utilizados em diversos cenários, como preenchimento de bancos de dados de teste, geração de conteúdo de exemplo para desenvolvimento de aplicações, ou qualquer outra situação em que dados simulados sejam necessários.

Com a gem Faker, você pode gerar uma ampla variedade de dados fictícios, como nomes, endereços, números de telefone, endereços de e-mail, textos, datas, números aleatórios e muito mais. Ela fornece uma série de métodos que você pode chamar para obter dados fictícios de maneira rápida e fácil.

Por exemplo, para gerar um nome fictício, você pode fazer:

Faker::Name.name

E para gerar um endereço de e-mail fictício:

Faker::Internet.email

A gem Faker é muito útil em conjunto com outras ferramentas e bibliotecas, como o FactoryBot Rails, para preencher objetos de modelo com dados fictícios realistas em testes automatizados.

Em resumo, a gem Faker é uma ferramenta valiosa para desenvolvedores Ruby que precisam gerar dados fictícios para diversos fins em seus projetos. Ela facilita a criação de dados fictícios de alta qualidade de forma rápida e fácil, ajudando a melhorar a eficiência e a produtividade no desenvolvimento de software.

vanderleipinto commented 7 months ago

Gem Faker

Gem para gerar dados falsos.

Instalação Gemfile

group :development, :test do
...
`gem 'faker'`
...
end

bundle

Usando a gem faker

No arquivo spec/factories/customer.rb fazemos com que o faker crie o nome e o email.

FactoryBot.define do
  factory :customer do
    name {Faker::Name.name}
    email {"Faker::Email.email"}
  end
end

Testando

require 'rails_helper'

RSpec.describe Customer, type: :model do
  it 'Full name' do 
    customer = build (:customer)
    expect(customer.full_name).to start_with("Sr")    
  end    
  it {expect{ create(:customer)}.to change {Customer.all.size}.by(1)}
  # Vai criar o cliente e vai verificar se um registro foi incrementado.
end