cassiosantana / ruby_study

0 stars 0 forks source link

13 - Mini curso de testes Ruby com Rspec - Melhorando nosso teste com a Gem FFAKER #78

Closed cassiosantana closed 1 year ago

cassiosantana commented 1 year ago

Aula 13

Nesta aula adicionamos a gem FFaker ao projeto. Esta gem gera dados aleatórios para que nossos testes não fiquem viciados e só funcionem com determinados valores.

Primeiro adicionar a gem ao Gemfile:

group :development, :test do
  # See https://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-the-debug-gem
  gem "debug", platforms: %i[ mri mingw x64_mingw ]
  gem 'rspec-rails', '~> 6.0', '>= 6.0.1'
  gem 'ffaker', '~> 2.21'
end

Rodar o bundle para instalar a gem:

bundle install

Refatorando nosso código de teste dele deve ficar assim ele deve ficar assim: require 'rails_helper'

RSpec.describe User, type: :model do
  it 'is invalid if the level is not between 1 and 99' do
    nickname = FFaker::Name.first_name
    kind = %i[knight wizard].sample
    level = FFaker::Random.rand(100..9999)
    user = User.new(nickname: nickname, kind: kind, level: level)

    expect(user).to_not be_valid
  end
  it 'returns the correct hero title' do
    nickname = FFaker::Name.first_name
    kind = %i[knight wizard].sample
    level = FFaker::Random.rand(1..99)
    user = User.create(nickname: nickname, kind: kind, level: level)
    expect(user.title).to eq("#{kind} #{nickname} ##{level}")
  end
end