Exercícios: Aula 12 - Testes e Documentação 🧪
🟢 Básico
- Macro de Asserção: Qual a diferença entre
assert!,assert_eq!eassert_ne!? Dê um exemplo de uso para cada um. - Comentários Doc: Crie uma função simples e adicione comentários de documentação usando
///. O que acontece quando você rodacargo doc --open?
🟡 Intermediário
- Teste Unitário: Crie uma função que valide se um e-mail é válido (verifique se contém "@"). Escreva pelo menos dois testes unitários dentro do mesmo arquivo: um para um caso de sucesso e outro para uma falha.
- Atributo Should Panic: Pesquise sobre o atributo
#[should_panic]e escreva um teste que passe apenas se a função testada causar umpanic!.
🔴 Desafio
- TDD (Test Driven Development): Sem escrever a implementação primeiro, crie os testes para uma função
parske_kelvin_to_celsius(k: f64) -> Result<f64, String>. O teste deve validar que:- O cálculo está correto.
- Se a temperatura for menor que 0 absoluto (-273.15 C), deve retornar um
Err. Depois, implemente a função até que todos os testes passem.
📚 Gabarito e Soluções Comentadas
Gabarito Explicado
### Questão 1: Macro de Asserção **Resposta Comentada:** - **Fundamentação:** No contexto de **Testes e Documentação**, o conceito abordado (Macro de Asserção) é 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: Comentários Doc **Resolução e Implementação:**// Estrutura de implementação recomendada para Comentários Doc
// Validação de regras de negócio e retorno consistente
// Estrutura de implementação recomendada para Teste Unitário
// Validação de regras de negócio e retorno consistente