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 chamadojest.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 nomeindex.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. |