Teste automático de API REST com Node.js + Mocha + Chai

Henrique Deodato
3 min readFeb 15, 2018

--

API REST já é parte obrigatória da maioria dos projetos que fazemos hoje em dia, e poder dormir tranquilo sabendo que nossos endpoints estão funcionando corretamente é parte do trabalho.

Para isso, automatizar os testes é crucial.

Neste artigo listarei os passos que realizei para criar meu primeiro teste automatizado utilizando Node.js, o test framework Mocha e o Chai, que é a lib que nos ajuda a escrever os testes.

Instalação

Todos os passos descritos abaixo foram realizados em um PC rodando Windows 10 e MinGW, mas tirando proveito da portabilidade das ferramentas, não deve ser muito diferente nas outras plataformas.

Primeiro de tudo, instale o Node.js, você pode baixar no site oficial, e após instalação, abra o terminal e execute o comando para verificar a versão.

$ node -v
$ v9.5.0

próximo passo, criar a pasta onde nosso código será armazenado

mkdir teste_api
cd teste_api

Uma vez dentro da pasta, vamos iniciar o processo de criação do projeto

npm init

É possível já informar informações sobre o projeto, mas eu deixarei tudo padrão, no final digite yes para finalizar o processo e criar o arquivo package.json em sua pasta.

O conteúdo do arquivo package.json será algo como este

Para aqueles que não conhecem, este arquivo guarda todas as referências as dependências que utilizarmos, assim, um outro desenvolvedor pode baixar o projeto e instalar tudo o que for necessário de forma automática.

Agora vamos instalar os itens que precisamos para realizar os testes

npm install mocha -g --save-dev
npm install chai --save-dev
npm install should --save-dev
npm install request --save-dev

Os pacotes instalados são:

  • Mocha — Test Framework
  • Chai — Teste Framework
  • Should — Biblioteca para extender os testes
  • Request — Para realizar as chamadas na API

Neste Momento todas as dependências estarão armazenadas no package.json e uma nova pasta chamada node_modules foi criada e armazena todos os pacotes e dependências do projeto.

Criando a estrutura do projeto.

Mocha roda automaticamente os testes que obviamente estão dentro da pasta p̶a̶d̶a̶r̶i̶a test, então vamos criar esta pasta

mkdir test

O que vamos testar?

Para realizar os testes eu vou utilizar a api que retorna informações sobre cartas de Magic the Gathering (que eu gosto muito diga-se de passagem).

Esta api é REST FULL então podemos testar vários diferentes cenários, o que é bem legal para aprenderemos os conceitos (mas nesse tutorial, darei apenas a introdução, o resto é com você).

Escrevendo o teste

Agora utilizando seu editor de texto favorito (o meu é o Sublime) vamos criar nosso primeiro teste.

Como eu disse antes, o mocha roda todos os arquivos que estão na pasta test, então vamos criar nosso primeiro teste, para isso vamos criar o arquivo card.spec.js que terá a seguinte estrutura.

Executando

Para rodar os testes, basta digitar mocha na pasta raiz do projeto

mocha

O resultado do teste será como o abaixo (em caso de sucesso)

Simulando um erro (comparando 400 com 200 no resultado do primeiro teste) teremos

Finalizando

Claro que não entrei nos detalhes das funçõe do Chai, mas este post é para dar uma idéia da estrutura e do que é necessário para o teste.

Veja que os comentários no código ajudam no entendimento e a documentação do Chai é bem rica.

O projeto pode ser baixado no github.

Qualquer coisa me chama no twitter

Photo by ShareGrid on Unsplash

--

--

Henrique Deodato

Geek, Gamer and Founder of Apps&Etc | São Paulo | Brasil