Repositório dedicado a estudos de testes unitários, de integração e e2e no frontend.
Estudo baseado no curso Testes no React do Zero ao Avançado: Vitest, Cypress do Daniel Lopes.
Responsável por disponibilizar uma DOM virtual onde elementos html podem ser realizados
Biblioteca react para o testing-library. Assim como existem para vue e angular.
Utilizado para realizar eventos de usuário nos testes: click, hover, keyboard, etc.
Gera relatório de cobertura de testes
Responsável por disponibilizar de forma global os métodos de teste: describe, it, test, expect, etc.
Simulação de um objeto, função ou módulo. Ele isola o código que está sendo testado, facilitando prever comportamentos. Além disso, evita chamar funções pesadas, como chamadas a APIs.
O mock pode ser feito de algumas formas
- Mockando do 0:
export function exampleFunction() {
// Lógica da função
}
export function exampleMockFunction() {
// Lógica da função mockada
}- Usando as bibliotecas de teste
// Quando o teste encontrar o método `useNavigate` ele irá usar o mock
vi.mock("react-router-dom", () => ({
useNavigate() {
return vi.fn()
}
}))O teste é escrito antes do código ser feito, seguindo os seguintes passos:
- Escrever o teste
- Falhar o teste
- Implementar o código
- Passar o teste
- Refatorar o código para melhorar a qualidade
Serve para mudar o comportamento interno de uma função, método ou componente.
Link: vi.fn().mockImplementation((props) => props.children)Modifica o mock de um módulo apenas uma vez.
vi.spyOn(rrd, "useParams").mockImplementationOnce(() => ({ id: undefined }));