Pular para conteúdo

Exercícios: Aula 12 - Testes e Documentação 🧪

🟢 Básico

  1. Macro de Asserção: Qual a diferença entre assert!, assert_eq! e assert_ne!? Dê um exemplo de uso para cada um.
  2. Comentários Doc: Crie uma função simples e adicione comentários de documentação usando ///. O que acontece quando você roda cargo doc --open?

🟡 Intermediário

  1. 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.
  2. Atributo Should Panic: Pesquise sobre o atributo #[should_panic] e escreva um teste que passe apenas se a função testada causar um panic!.

🔴 Desafio

  1. 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.