- Better Specs (padrões massa para se usar testando com RSPEC)
- What to Test (leitura massa pra ter uma mentalidade de testar as coisas mais úteis e saber o que testar)
Todas as gemas adicionadas e suas configurações estão presentes nesse projeto, caso precise de uma referência de onde instalar cada coisa.
Framework de testes para Ruby
adicione no gem file no parte de :development e :test
gem 'rspec-rails', '~> 4.0.1'
rode
bundle install
por fim, rode o comando:
rails generate rspec:install
FactoryBot é uma gema que permite instanciar Models para testes de maneira facilitada, o que nos ajuda muito a fazer testes mais consistentes de forma mais rápida.
Instruções atualizdas factory-bot
adicione no gem file no parte de :development e :test
gem 'factory_bot_rails'
rode
bundle install
por fim, adicione o seguinte ao rails_helper.rb dentro do bloco Rspec.configure:
config.include FactoryBot::Syntax::Methods
SimpleCov nos permite ver a cobertura de testes, para ver mais facilmente onde é preciso testar.
Instruções atualizdas simple cov
adicione no gem file no parte de :test
gem 'simplecov', require: false
rode
bundle install
por fim, adicione o seguinte ao spec_helper.rb bem no topo do arquivo:
require 'simplecov'
SimpleCov.start
Foi utilizado o Devise Auth Token para as lógicas das rotas de autenticação e de um model de User com Token. Qualquer coisa veja o link: Devise Auth Token
Você pode importar os requests do POSTMAN com o seguinte link:
https://www.getpostman.com/collections/b7b2dd1f1ba502e64b47
Basta ir no menu "import" do postman:
Ir na aba "", adicionar a url acima e clicar em "import":
Todas as requisições devem aparecer no seu Postman:
Note que para usar elas, uma variável {{url}} deve estar setada. Isso pode ser feito importando um enviroment no postman:
Baixe o arquivo json do development enviroment do postman:
Link para Development Enviroment
Importe ele no postman pelo menu de "import":
Coloque o arquivo JSON baixado para importar:
Você pode ver agora o ambiente de development no menu lateral, podendo mudar a variável {{url}} e a {{token}} conforme necessário:
Para fazer uma requisição autenticado é preciso passar 3 parâmetros no header da requisição para que a API encontre o usuário atual:
- client
- access-token
- uid
Esses dados vêm da requisição de sign_in (ou sign_up), na parte de headers da resposta: