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

Página 62

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.

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.

Now answer the exercise about the content:

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?

You are right! Congratulations, now go to the next page

You missed! Try again.

Next page of the Free Ebook:

638. Introdução a API's

Earn your Certificate for this Course for Free! by downloading the Cursa app and reading the ebook there. Available on Google Play or App Store!

Get it on Google Play Get it on App Store

+ 6.5 million
students

Free and Valid
Certificate with QR Code

48 thousand free
exercises

4.8/5 rating in
app stores

Free courses in
video, audio and text