read

Recentemente estava procurando uma solução javascript/node.js para realizar os testes de APIs Restful.

Me deparei com um framework chamado Chakram que facilita os testes de APIs.

Para criar um projeto usando Chakram é necessário ter o node.js instalado, aconselho usar o NVM (Node Version Manager) para instalar e gerenciar as versões do node.js.

Abaixo segue os links para instalação do NVM:

Windows

Linux / MacOS

Sugestão para quem utiliza Windows é instalar o conemu que é um terminal mais amigável que o tradicional do windows, principalmente para quem não usa windows 10, abaixo o link para download:

Após intalado o nvm instale a versão LTS mais recente do node.js via nvm, um comando como:

nvm install [VERSÃO_LTS_DO_NODE]

O próximo passo é criar um projeto Node.js crie um diretório chamado testeAPI e dentro desse diretório, via linha de comando execute:

npm init -y

O comando acima irá criar um arquivo chamado package.json, nesse arquivo contém uma série de informações com relação ao gerenciamento de pacotes npm. Mais informações https://docs.npmjs.com/files/package.json.

Instalando o Chakram js:

npm install --save-dev chakram

Para rodar os testes será necessário instalar o mocha js:

npm install --save-dev mocha

Na documentação do Chakram JS e até mesmo do Mocha JS indica instalar o Mocha JS como um módulo global qual tem uma CLI para a execução dos testes, o que pode ser um problema ao longo do tempo por nem todos projetos estarem usando a mesma versão da CLI.

Crie no diretório um arquivo chamado zipTest.js. Vamos fazer uma chamada de uma API pública para consulta de cep do site ViaCEP ( https://viacep.com.br/ ).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
'use strict';
var chakram = require('chakram'),
    expect = chakram.expect;


describe('Zipcode Test', function() {

    it('Give a Zipcode must return the name of city', function() {
        var zipcode = '37170000'

        return chakram.get('https://viacep.com.br/ws/' + zipcode + '/json/')
            .then(function(response) {

            
                expect(response).to.have.status(200);
                expect(response.body.localidade).to.equal('Boa Esperança');
        });
    });
});

Acima na linha 2 é importado o módulo do chakram e abaixo na linha 3 é importado o módulo de assertion do Chai JS que funciona em conjunto com o Mocha JS.

Na linha 6 é a descrição geral dos testes que estarão aninhados naquele bloco de código.

De fato na linha 8 é que começa o real teste que irá ser feito, onde dado um cep que conhecemos tem que retornar a cidade esperada.

Na linha 11 é chamada a API passando na própria url o cep que queremos consultar. Então na linha 12 temos o aguardo de uma promise para pegarmos o retorno da chamada à API.

Na linha 15 verificamos se a API conseguiu nos responder com sucesso aguardando um retorno 200 da chamada HTTP.

Para finalizar na linha 16 verificamos se o retorno do campo localidade é igual a cidade de Boa Esperança, já que passamos o cep 37170000 como parâmetro.

Verificando se o teste criado está funcionando rode o seguinte código na linha de comando:

node_modules/mocha/bin/mocha zipTest.js

OBS.: Caso estiver usando windows inverter as barras do caminho para o mocha.

Nesse post mostrei como iniciar os testes usando o Chakram Js, no próximo abordarei uma estrutura de como montar esses testes usando arquivos de configuração e reaproveitando várias chamadas de API.

Abaixo segue as referências assim como o link do código exemplificado acima:

Link para aprender um pouco de Node.js: https://blog.risingstack.com/node-hero-tutorial-getting-started-with-node-js/

Blog Logo

Luidy Naves


Published

Image

Luidy Naves

It is not necessary to change. Survival is not mandatory. (W. Edwards Deming)

Voltar