Capítulo 10.12 do nosso curso e-book: "Criando uma API REST básica com NodeJS e ExpressJS: Testes automatizados". Este capítulo ensina como implementar testes automatizados em sua API utilizando o NodeJS e o ExpressJS, uma biblioteca extremamente popular para a criação de APIs em NodeJS.
Os testes automatizados são uma parte crucial do desenvolvimento de software. Eles ajudam a garantir que seu código esteja funcionando corretamente e que as mudanças que você faz não quebrem a funcionalidade existente. Ao desenvolver uma API, os testes automatizados são ainda mais importantes, pois ajudam a garantir que a API esteja retornando os dados corretos e respondendo corretamente a várias solicitações.
Para começar, vamos instalar o ExpressJS. Se você já tem o NodeJS instalado, pode instalar o ExpressJS com o comando 'npm install express'. Após a instalação, você pode criar um novo arquivo 'app.js' e importar o ExpressJS com 'const express = require('express')'. Em seguida, você pode criar uma nova instância do ExpressJS com 'const app = express()'.
Com a instância do ExpressJS criada, você pode começar a definir as rotas para sua API. Por exemplo, você pode criar uma rota GET simples que retorna um objeto JSON com uma mensagem de boas-vindas. Isso pode ser feito com o seguinte código:
app.get('/', (req, res) => { res.json({ message: 'Bem-vindo(a) à nossa API!' }); });
Com essa rota definida, você pode iniciar o servidor ExpressJS com 'app.listen(3000)', o que fará com que o servidor comece a escutar na porta 3000. Agora, se você acessar 'http://localhost:3000' em seu navegador, deverá ver a mensagem de boas-vindas.
Agora que temos uma API básica funcionando, podemos começar a implementar os testes automatizados. Para isso, vamos usar uma biblioteca chamada Jest. O Jest é uma biblioteca de testes popular para JavaScript que oferece uma variedade de recursos, incluindo a capacidade de simular solicitações HTTP.
Você pode instalar o Jest com 'npm install --save-dev jest'. Após a instalação, você pode criar um novo arquivo 'app.test.js'. Neste arquivo, vamos importar o Jest e o supertest, uma biblioteca que nos permite simular solicitações HTTP.
const request = require('supertest'); const app = require('./app');
Com o Jest e o supertest importados, podemos começar a escrever nossos testes. Vamos começar com um teste simples para nossa rota GET. O teste deve enviar uma solicitação GET para a rota e verificar se a resposta é o objeto JSON que esperamos.
test('GET /', async () => { const response = await request(app).get('/'); expect(response.statusCode).toBe(200); expect(response.body).toEqual({ message: 'Bem-vindo(a) à nossa API!' }); });
Este teste utiliza a função 'request' do supertest para enviar uma solicitação GET para a rota '/'. Em seguida, ele verifica se o código de status da resposta é 200, o que indica uma resposta bem-sucedida. Ele também verifica se o corpo da resposta é o objeto JSON que esperamos.
Com este teste implementado, você pode executar 'npm test' para executar os testes. Se tudo estiver configurado corretamente, você deverá ver uma saída indicando que o teste passou.
Os testes automatizados são uma parte crucial do desenvolvimento de uma API e, com o NodeJS e o ExpressJS, é fácil implementar esses testes. No entanto, este é apenas o começo. Há muitos outros aspectos do teste que você pode explorar, incluindo testes de unidade, testes de integração e testes de carga. Mas com o conhecimento que você ganhou neste capítulo, você está bem equipado para começar.
Esperamos que você tenha achado este capítulo útil e informativo. Fique ligado para o próximo capítulo, onde vamos explorar mais recursos avançados do NodeJS e do ExpressJS!