Publicado
- 3 min read
Crie uma Aplicação Completa com React, Vite e Testes Unitários e E2E

Introdução
O desenvolvimento de aplicações web modernas exige ferramentas que proporcionem eficiência e qualidade. O React é uma biblioteca popular para a construção de interfaces de usuário, enquanto o Vite serve como um bundler e ambiente de desenvolvimento extremamente rápido. Neste guia, mostraremos como configurar uma aplicação com essas tecnologias e adicionaremos uma camada de testes, utilizando Vitest para testes unitários e Playwright para testes end-to-end. Aprenderemos também sobre as melhores práticas para garantir a performance da aplicação.
Pré-requisitos
Antes de iniciar, é importante que você tenha:
- Conhecimento básico de JavaScript e React
- Node.js instalado em sua máquina
- Familiaridade com terminal/linha de comando
- Editor de código, como Visual Studio Code
Configurando o Ambiente
Vamos começar configurando nossa aplicação com Vite e React.
-
Criação do Projeto
No terminal, execute o seguinte comando para criar um novo projeto usando Vite:
npm create vite@latest my-react-app --template react
Entre no diretório do projeto:
cd my-react-app
-
Instalação das Dependências de Testes
Instale as bibliotecas necessárias para testes unitários e end-to-end:
npm install --save-dev vitest @testing-library/react playwright
Estrutura Básica da Aplicação
Vamos criar um componente simples para testar nossas configurações.
- Criando um Componente:
src/components/HelloWorld.jsx
import React from 'react'
const HelloWorld = ({ name }) => {
return <h1>Hello, {name}!</h1>
}
export default HelloWorld
- Usando o Componente:
src/App.jsx
import React from 'react'
import HelloWorld from './components/HelloWorld'
const App = () => {
return (
<div>
<HelloWorld name='React Developer' />
</div>
)
}
export default App
Implementando Testes Unitários com Vitest
Agora vamos criar um teste simples para nosso componente.
- Criando o Teste:
src/components/HelloWorld.test.jsx
import { render, screen } from '@testing-library/react'
import HelloWorld from './HelloWorld'
describe('HelloWorld Component', () => {
test('renders correctly', () => {
render(<HelloWorld name='React Developer' />)
const heading = screen.getByRole('heading', { name: /hello, react developer!/i })
expect(heading).toBeInTheDocument()
})
})
-
Rodando os Testes:
Para rodar os testes, execute o comando:
npx vitest
Implementando Testes E2E com Playwright
Para adicionar testes end-to-end, vamos criar um arquivo de teste que carregará nossa aplicação no navegador.
- Criando o Teste E2E:
tests/app.spec.js
const { test, expect } = require('@playwright/test')
test('testa a página inicial', async ({ page }) => {
await page.goto('http://localhost:3000')
const heading = await page.locator('h1')
await expect(heading).toHaveText('Hello, React Developer!')
})
-
Rodando os Testes E2E:
Para rodar os testes E2E, primeiro, inicie seu servidor de desenvolvimento:
npm run dev
Em outro terminal, rode o Playwright:
npx playwright test
Melhores Práticas para Performance
- Lazy Loading: Carregar componentes sob demanda pode melhorar o tempo de carregamento.
- Memoização: Utilize
React.memo
para componentes que não precisam ser renderizados novamente quando as props não mudam. - Utilize Bundling e Minificação: Vite já trata da parte de bundling e entrega de recursos otimizados.
- Remova Código Inútil: Ferramentas como
tree-shaking
ajudam a eliminar código não utilizado durante o processo de build.
Dicas para Próximos Passos
- Aprofunde-se em Testes: Explore as funcionalidades do Vitest e do Playwright.
- Aprenda sobre State Management: Utilizar bibliotecas como Redux ou Zustand.
- Explore Tipos: Adicione TypeScript à sua aplicação para maior segurança de tipos.
Possíveis Erros e Soluções
- Erro de porta ocupada: Caso a porta padrão
3000
esteja ocupada, altere a porta de execução do Vite. - Problemas de importação: Verifique se todos os nomes de arquivos e caminhos estão corretos, especialmente em sistemas baseados em Linux que são sensíveis a maiúsculas e minúsculas.
Links Úteis
Com isso, você já está preparado para iniciar sua aventura com React, Vite, Vitest e Playwright. Boa sorte em suas construções e testes!