Estratégia de Testes
Garantir a qualidade do código através de testes automatizados é fundamental para a estabilidade do sistema. Nossa estratégia foca em cobrir lógicas de negócio e fluxos críticos.
1. Pirâmide de Testes
- Unitários (70%): Foco em funções utilitárias, lógica de negócio pura e componentes isolados.
- Integração (20%): Testes de hooks customizados, comunicação entre serviços e integração entre componentes.
- E2E/Componente (10%): Fluxos críticos do usuário, garantindo que as principais funcionalidades funcionem de ponta a ponta.
2. Testes de Unidade
Cada funcionalidade ou utilitário deve ter um arquivo de teste correspondente na pasta __tests__ adjacente ao arquivo original.
Exemplo de Teste:
typescript
import { formatCurrency } from "../format-utils";
describe("Formatadores", () => {
it("deve formatar valores monetários corretamente", () => {
const result = formatCurrency(1500.50);
expect(result).toBe("R$ 1.500,50");
});
it("deve retornar valor zero quando nenhum parâmetro for passado", () => {
const result = formatCurrency(0);
expect(result).toBe("R$ 0,00");
});
});3. Mocking
- Usar ferramentas de mock para interceptar chamadas de API e dependências externas.
- Mockar o
@ptm/design-systemse necessário para testes de unidade rápidos.
4. Cobertura (Coverage)
- 100% de cobertura recomendada para funções de lógica de negócio e utilitários compartilhados.
- Cobertura geral do projeto deve se manter em um nível saudável (acima de 80%).