Executando verificação de segurança...
2

Como Configurar um projeto NextJs13 + Typescript + Jest + React Testing Library


Instalação

  • Após instalar o Nextjs com:
create-next-app
  • Precisamos instalar as dependências:
npm i -D jest jest-environment-jsdom @testing-library/react @testing-library/jest-dom
  • Para utilizar juntamente com o Typescript precisamos instalar mais essas:
npm i -D ts-jest ts-node

Configuração

  • Crie um arquivo na raiz do projeto, com o nome: jest.config.ts
  • Dentro desse arquivo cole as seguintes configurações:
import nextJest from "next/jest";

const createJestConfig = nextJest({
  dir: "./",
});

/** @type {import('jest').Config} */
const config = {
  setupFilesAfterEnv: ["<rootDir>/jest.setup.js"],
  testEnvironment: "jest-environment-jsdom",
  preset: "ts-jest",
};

export default createJestConfig(config);
  • Dentro do arquivo jest.config.ts vejam que referenciamos um arquivo chamado jest.setup.js , então vamos criá-lo na raiz do projeto.
  • Em jest.setup.js cole a seguinte importação:
import "@testing-library/jest-dom/extend-expect";
  • Para acabar a configuração crie os seguintes scripts dentro de package.json :
"scripts": {
		...
    "test": "jest",
    "test:watch": "jest --watchAll"
  },

Escrevendo seu primeiro teste

  • Crie uma pasta na raiz do projeto, geralmente chamada __tests__, e dentro da mesma crie um arquivo com o nome index.test.tsx. Existe variantes para esse nome mas, o importante é seguir a mesma nomenclatura para todo o projeto.
  • Cole esse teste simples em index.test.tsx:
describe("Hello", () => {
  it("hello", () => {
    expect(1).toBe(1);
  });
});
  • Agora basta executar o seguinte comando no seu terminal:
npm run test

Conclusão

Testar é algo fundamental para o pleno funcionamento de um software, então não deixe de sempre aprender mais sobre o assunto. Saúde e sucesso para todos.


Sou um desenvolvedor web fullstack com dois anos de experiência, apaixonado por tecnologia e por criar soluções eficientes. Mantenho-me atualizado com as novas tecnologias e estou sempre procurando aprender mais. Com uma alma jovem e sedenta por conhecimento, estou constantemente buscando expandir minhas habilidades. Tenho habilidades comprovadas em trabalhar em equipe e estou confiante em minhas habilidades para resolver problemas e entregar resultados de qualidade. Meu portfólio apresenta projetos que desenvolvi em várias tecnologias, incluindo React, NextJs, TypeScript, NodeJs, Jest, PHP, JavaScript, HTML, CSS, Python, Django e MySQL.

Carregando publicação patrocinada...