Testes automatizados para APIs NodeJS
teste unitário
vs
teste de api
principais diferenças
api
- Baseado em endpoints
- Testa vários comportamentos simultaneamente
- Maior dificuldade de debug
- Testes mais longos
- Grande quantidade de stubs e mocks no momento do teste
- Mais rápido e fácil de implementar
- Não exige uma grande mudança de mentalidade ao desenvolver o código
unitário
- Baseado em "unidades" de código
- Testa cada comportamento isoladamente
- Aponta comportamentos específicos ao quebrar
- Testes rápidos e sucintos
- Sem IO = Sem stubs
- Maior complexidade, logo, maior tempo de implantação
- Exige código escrito de maneira específica
Premissas
O necessário para testes de api
separação
em
camadas
banco / IO
negócio
apresentação
Ferramentas
Mocha
test runner
sinon
stubs, mocks e spies
axiosist
servidor http em ambiente isolado
nock
interceptação de requests http
chai
assertion library
Test cases
Descrevem cada caminho que uma request pode percorrer e seus respectivos resultados
Rota não encontrada
- Possui status HTTP 404
- Retorna um código de erro "not_found"
Payload inválido
- Possui status HTTP 422
-
Retorna um código de erro "unacceptable_payload_schema"
Usuário não autenticado
- Possui status HTTP 401
- Retorna um código de erro "unauthorized"
Demo
Rogerio munhoz

@roziscoding
t.me/roziscoding
roz@rjmunhoz.me
Contato:
github.com/roziscoding/nodejs-api-testing
Testes automatizados para APIs NodeJS
By Rogério Munhoz
Testes automatizados para APIs NodeJS
- 168