Testes de API com BDD usando Cucumber, HTTParty e RSpec Expectations.
ServeRest - API REST para prática de testes.
| Biblioteca | Uso |
|---|---|
| Cucumber | BDD - cenários em Gherkin |
| HTTParty | Cliente HTTP |
| RSpec Expectations | Assertions |
| FactoryBot | Geração de dados estruturados |
| Faker | Geração de dados falsos |
| RuboCop | Padronização de estilo |
bundle install# Ambiente de produção (padrão)
bundle exec cucumber
# Ambiente de homologação
bundle exec cucumber -p hlg
# Com relatório HTML
bundle exec cucumber -p html_report
# Cenário específico por tag
bundle exec cucumber --tags @post_userOs relatórios são gerados na pasta reports/ (ignorada pelo Git).
bundle exec cucumber -f html -o reports/features_report.html| Tag | Cenário | Tipo |
|---|---|---|
@get_users |
GET lista de usuários | positivo |
@get_user |
GET usuário por ID | positivo |
@get_user_invalid |
GET com ID inválido | negativo |
@post_user |
POST novo usuário | positivo |
@post_user_duplicate |
POST com email duplicado | negativo |
@put_user |
PUT atualizar usuário | positivo |
@delete_user |
DELETE usuário | positivo |
Os testes rodam automaticamente via GitHub Actions em pushes para main e dev e em pull requests. O relatório é disponibilizado como artefato da execução.
O diretório reports/ é ignorado pelo Git e precisa existir antes de gerar o relatório. O env.rb cria o diretório automaticamente ao inicializar o Cucumber, então basta executar normalmente:
bundle exec cucumber -p html_reportSe o erro persistir, crie o diretório manualmente:
mkdir reportsDocumentação introdutória sobre os conceitos e ferramentas do projeto: notes/README.md
| # | Tópico |
|---|---|
| 1 | Introdução |
| 2 | Configuração do Projeto |
| 3 | Cucumber e BDD |
| 4 | HTTParty na Prática |
| 5 | FactoryBot e Faker |