Seed a Bit logo

Seed a Bit

Github

Introdução

Testes de software são uma parte essencial do desenvolvimento de software. Eles garantem que o código que você escreveu está funcionando corretamente e que mudanças futuras não quebrarão o código existente. Nesta sessão, abordaremos o Jest, uma das ferramentas mais populares para testes de software em Javascript/Typescript.

O que são testes de software?

Testes de software são um processo de verificação de que o software está funcionando de acordo com as especificações. Eles são uma parte essencial do desenvolvimento de software, pois garantem que o código que você escreveu está funcionando corretamente e que mudanças futuras não quebrarão o código existente.

Existem vários tipos de testes de software, incluindo testes de unidade, testes de integração, testes de aceitação e testes de regressão. Cada tipo de teste tem um objetivo diferente e é executado em um nível diferente do software.

Organize o seu código de forma que seja fácil de testar. Isso significa que você deve dividir o seu código em pequenas partes que possam ser testadas de forma independente. Isso facilita a identificação de problemas, modularização do seu sistema e a correção de bugs.

Pode se aplicar uma forma de desenvolvimento orientado a testes (TDD) para garantir que o seu código seja testado desde o início. Isso ajuda a garantir que o seu código seja testável e que você tenha uma cobertura de testes adequada. Primeiramente você escreve os testes e depois o código que faz o teste passar.

O que é o Jest?

O Jest é uma estrutura de teste de código aberto mantida pelo Facebook. Ele é projetado para ser fácil de usar e configurar e fornece uma série de recursos úteis para testes de software em Javascript/Typescript.

O Jest é uma das ferramentas mais populares para testes de software para sistemas de backend e frontend com Javascript e Typescript. Ele é amplamente utilizado na comunidade de desenvolvimento de software e é recomendado por muitos desenvolvedores. Veremos como instalar e configurar o Jest em nossos projetos, bem como como escrever testes de software usando o Jest.

Instalação e configuração

Para instalar o Jest em seu projeto, você pode usar o npm ou o yarn. Primeiramente, você deve instalar o Jest como uma dependência de desenvolvimento em seu projeto. Para isso, execute o seguinte comando no terminal:

npm install --save-dev jest

Após a execução do comando, o Jest será instalado como uma dependência de desenvolvimento em seu projeto. Você pode verificar se o Jest foi instalado corretamente verificando o arquivo package.json do seu projeto. O Jest deve estar listado na seção de dependências de desenvolvimento.

É importante que você defina o Jest como um script no seu package.json. Para isso, adicione o seguinte código na seção de scripts do seu package.json:

1"scripts": {
2    "test": "jest"
3}

Também é possível configurar o Jest de acordo com as necessidades do projeto. O Jest possui uma configuração padrão que funciona para a maioria dos projetos, mas você pode personalizá-la de acordo com suas necessidades. Para fazer isso, crie um arquivo chamado jest.config.js na raiz do seu projeto e adicione a seguinte configuração:

1

Essa configuração define o ambiente de teste como node, o que significa que o Jest executará os testes em um ambiente Node.js. Você pode personalizar essa configuração de acordo com suas necessidades, adicionando outras opções de configuração.

There's also the testMatch option, which allows you to specify the test files that Jest should run. By default, Jest will look for test files in the __tests__ directory or any file with a .test.js or .spec.js extension. You can customize this option to match your project's file structure. In the example above, we are telling Jest to look for test files in the __tests__ directory that end with .test.ts.

Construindo testes

Para construir testes com o Jest, você pode usar a função test() ou it(). Ambas as funções são equivalentes e podem ser usadas para definir um teste. A função test() é mais comum, enquanto a função it() é mais comum em testes de comportamento. Além disso, você pode usar a função describe() para agrupar testes relacionados.

Para criar um teste simples, você pode usar o seguinte código:

1

Esse teste verifica se a função sum() retorna o resultado correto quando somamos dois números. O Jest fornece uma função chamada expect(), que é usada para fazer asserções sobre o resultado do teste. A função toBe() é um matcher que verifica se o valor retornado pela função sum() é igual a 3.

Para executar os testes, você pode usar o seguinte comando:

npm test

Isso executará todos os testes em seu projeto e exibirá os resultados no terminal. O Jest fornecerá informações detalhadas sobre quais testes passaram e quais falharam.

Além disso, o Jest fornece uma série de matchers que você pode usar para fazer asserções sobre o resultado do teste. Alguns dos matchers mais comuns incluem:

  • toBe(): Verifica se o valor é igual ao esperado.
  • toEqual(): Verifica se o valor é igual ao esperado, mas não verifica o tipo.
  • toBeTruthy(): Verifica se o valor é verdadeiro.
  • toBeFalsy(): Verifica se o valor é falso.
  • toContain(): Verifica se um array contém um valor específico.
  • toHaveLength(): Verifica se um array tem um comprimento específico.
  • toMatch(): Verifica se uma string corresponde a uma expressão regular.
  • toThrow(): Verifica se uma função lança um erro.

Esses são apenas alguns exemplos dos matchers disponíveis no Jest. Você pode encontrar uma lista completa de matchers na documentação do Jest.

Além disso, o Jest fornece uma série de recursos avançados, como mocks, spies e cobertura de código. Esses recursos podem ser úteis para testar código mais complexo e garantir que seu código esteja funcionando corretamente.