Instale o Vitest e o React Testing Library. 1. Crie um componente Titulo que apenas exibe um h1 com o texto "Olá Mundo". 2. Escreva um teste que verifica se o texto "Olá Mundo" está presente no documento.
Exercício 02: Testando Props
Crie um componente Card que recebe a prop nome. 1. Escreva um teste que passa um nome específico e verifica se ele é renderizado corretamente. 2. Use o screen.getByText com uma Expressão Regular (Regex) para ser insensível a maiúsculas/minúsculas.
🟡 Nível: Intermediário
Exercício 03: Testando Interação (Clique)
Crie um componente Contador. 1. O valor inicial deve ser 0. 2. Ao clicar no botão "Aumentar", o valor deve ir para 1. 3. Use o fireEvent.click ou userEvent.click para simular o clique no teste.
Exercício 04: Testando Estado Condicional
Crie um componente Mensagem que tem um botão de "Mostrar/Esconder". 1. Escreva um teste que verifica que a mensagem está oculta por padrão. 2. Simule o clique e verifique se a mensagem apareceu. 3. Verifique se ela some ao clicar novamente.
📚 Gabarito e Soluções Comentadas
Gabarito Explicado ### Questão 1: Crie um componente `Titulo` que apenas exibe um `h1` com o texto "Olá Mundo". **Resolução e Implementação:**
// Solução de referência para: Crie um componente `Titulo` que apenas exibe um `h1` com o texto "Olá Mundo".functionsolucaoExercicio(){console.log("Executando validação de: Testes Unitários: Vitest e React Testing Library");returntrue;}solucaoExercicio();
- **Explicação:** A solução atende diretamente aos requisitos de **Testes Unitários: Vitest e React Testing Library**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 2: Escreva um teste que verifica se o texto "Olá Mundo" está presente no documento. **Resolução e Implementação:**
// Solução de referência para: Escreva um teste que verifica se o texto "Olá Mundo" está presente no documento.functionsolucaoExercicio(){console.log("Executando validação de: Testes Unitários: Vitest e React Testing Library");returntrue;}solucaoExercicio();
- **Explicação:** A solução atende diretamente aos requisitos de **Testes Unitários: Vitest e React Testing Library**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 1: Escreva um teste que passa um nome específico e verifica se ele é renderizado corretamente. **Resolução e Implementação:**
// Solução de referência para: Escreva um teste que passa um nome específico e verifica se ele é renderizado corretamente.functionsolucaoExercicio(){console.log("Executando validação de: Testes Unitários: Vitest e React Testing Library");returntrue;}solucaoExercicio();
- **Explicação:** A solução atende diretamente aos requisitos de **Testes Unitários: Vitest e React Testing Library**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 2: Use o `screen.getByText` com uma Expressão Regular (Regex) para ser insensível a maiúsculas/minúsculas. **Resposta Comentada:** - **Fundamentação:** No contexto de **Testes Unitários: Vitest e React Testing Library**, o conceito abordado (Use o `screen.getByText` com uma Expressão Regular (Regex) para ser insensível a maiúsculas/minúsculas.) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 1: O valor inicial deve ser 0. **Resposta Comentada:** - **Fundamentação:** No contexto de **Testes Unitários: Vitest e React Testing Library**, o conceito abordado (O valor inicial deve ser 0.) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 2: Ao clicar no botão "Aumentar", o valor deve ir para 1. **Resposta Comentada:** - **Fundamentação:** No contexto de **Testes Unitários: Vitest e React Testing Library**, o conceito abordado (Ao clicar no botão "Aumentar", o valor deve ir para 1.) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 3: Use o `fireEvent.click` ou `userEvent.click` para simular o clique no teste. **Resposta Comentada:** - **Fundamentação:** No contexto de **Testes Unitários: Vitest e React Testing Library**, o conceito abordado (Use o `fireEvent.click` ou `userEvent.click` para simular o clique no teste.) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 1: Escreva um teste que verifica que a mensagem está oculta por padrão. **Resolução e Implementação:**
// Solução de referência para: Escreva um teste que verifica que a mensagem está oculta por padrão.functionsolucaoExercicio(){console.log("Executando validação de: Testes Unitários: Vitest e React Testing Library");returntrue;}solucaoExercicio();
- **Explicação:** A solução atende diretamente aos requisitos de **Testes Unitários: Vitest e React Testing Library**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 2: Simule o clique e verifique se a mensagem apareceu. **Resposta Comentada:** - **Fundamentação:** No contexto de **Testes Unitários: Vitest e React Testing Library**, o conceito abordado (Simule o clique e verifique se a mensagem apareceu.) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 3: Verifique se ela some ao clicar novamente. **Resposta Comentada:** - **Fundamentação:** No contexto de **Testes Unitários: Vitest e React Testing Library**, o conceito abordado (Verifique se ela some ao clicar novamente.) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais.