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

  • 123