Capa do Ebook gratuito Como criar APIs em NodeJS do básico ao avançado

Como criar APIs em NodeJS do básico ao avançado

Novo curso

149 páginas

Trabalhando com rotas no ExpressJS: Testando as rotas com Jest ou Mocha

Capítulo 62

Tempo estimado de leitura: 4 minutos

Audio Icon

Ouça em áudio

0:00 / 0:00

Capítulo 7.16: Trabalhando com rotas no ExpressJS: Testando as rotas com Jest ou Mocha

Uma das principais características do ExpressJS é a sua capacidade de gerenciar rotas de forma eficiente e eficaz. Rotas são essenciais para qualquer aplicação web, pois determinam como uma aplicação responde a um pedido do cliente em um determinado endpoint, que é uma URI (ou caminho) e um método de solicitação HTTP específico (GET, POST, etc.).

Para criar uma rota no ExpressJS, usamos o método app.METHOD(), onde METHOD é o método de solicitação HTTP que você deseja utilizar. Por exemplo, se quisermos criar uma rota para responder a solicitações GET no caminho raiz (/), poderíamos fazer assim:

app.get('/', function (req, res) {
  res.send('Olá Mundo!')
})

Embora a criação de rotas seja relativamente simples, é importante garantir que elas estejam funcionando corretamente. E é aí que entram os testes. Existem várias ferramentas de teste disponíveis para Node.js, mas neste curso, vamos nos concentrar em duas das mais populares: Jest e Mocha.

Jest é uma estrutura de teste completa que requer pouco ou nenhum esforço de configuração, o que a torna uma excelente opção para iniciantes. Ele também tem uma sintaxe de teste muito clara e fácil de entender, o que facilita a escrita de testes. Vamos ver como podemos usar o Jest para testar as nossas rotas.

Continue em nosso aplicativo

Você poderá ouvir o audiobook com a tela desligada, ganhar gratuitamente o certificado deste curso e ainda ter acesso a outros 5.000 cursos online gratuitos.

ou continue lendo abaixo...
Download App

Baixar o aplicativo

const request = require('supertest');
const app = require('../app');

describe('Test the root path', () => {
    test('It should response the GET method', () => {
        return request(app).get("/").then(response => {
            expect(response.statusCode).toBe(200);
        })
    });
});

Neste exemplo, primeiro importamos o módulo supertest, que nos permite fazer solicitações HTTP para o nosso aplicativo. Em seguida, importamos o nosso aplicativo Express. Depois, usamos a função describe do Jest para agrupar os nossos testes e a função test para definir um teste. O teste em si é bastante simples: fazemos uma solicitação GET para a rota raiz e verificamos se o código de status da resposta é 200, que é o código de status HTTP para "OK".

Agora, vamos ver como podemos fazer algo semelhante com o Mocha. Ao contrário do Jest, o Mocha é apenas uma estrutura de teste e requer módulos adicionais para fazer afirmações ou solicitações HTTP. Neste exemplo, vamos usar o Chai como nossa biblioteca de afirmações e o supertest para as solicitações HTTP.

const request = require('supertest');
const app = require('../app');
const expect = require('chai').expect;

describe('GET /', function () {
  it('should respond with 200', function (done) {
    request(app)
      .get('/')
      .end(function(err, res) {
        expect(res.statusCode).to.equal(200);
        done();
      });
  });
});

Como você pode ver, a sintaxe do Mocha é um pouco diferente da do Jest, mas a ideia geral é a mesma. Nós fazemos uma solicitação GET para a rota raiz e verificamos se o código de status da resposta é 200.

Em resumo, o ExpressJS torna a criação de rotas uma tarefa simples, mas é importante garantir que essas rotas estejam funcionando corretamente. Para isso, podemos usar ferramentas de teste como o Jest ou o Mocha, que nos permitem escrever testes claros e concisos para as nossas rotas.

Testar suas rotas é uma prática recomendada, pois permite que você descubra e corrija problemas antes que eles afetem seus usuários. Além disso, os testes também podem servir como documentação, mostrando a outros desenvolvedores (ou a você mesmo, no futuro) como sua aplicação deve se comportar.

Portanto, invista algum tempo aprendendo e utilizando essas ferramentas de teste. Seu código será mais robusto, sua aplicação será mais confiável e você poderá dormir melhor à noite sabendo que sua aplicação está bem testada.

Agora responda o exercício sobre o conteúdo:

Qual é a principal funcionalidade do ExpressJS mencionada no texto e quais são as ferramentas de teste sugeridas para garantir o funcionamento correto das rotas?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

A principal funcionalidade do ExpressJS mencionada é a capacidade de gerenciar rotas de forma eficiente e eficaz. As ferramentas de teste sugeridas para garantir o funcionamento correto das rotas são o Jest e o Mocha. O texto destaca como essas ferramentas permitem a criação de testes para verificar a resposta correta das rotas criadas no ExpressJS.

Próximo capitúlo

Introdução a API's

Arrow Right Icon
Baixe o app para ganhar Certificação grátis e ouvir os cursos em background, mesmo com a tela desligada.