Escrevendo Testes com Unittest
Deslize para mostrar o menu
Quando é necessário garantir que seu código funciona conforme o esperado, a escrita de testes automatizados é fundamental. O módulo unittest do Python é um framework integrado que permite criar e organizar testes de forma simples. Os casos de teste são escritos criando classes que herdam de unittest.TestCase. Dentro dessas classes, são definidos métodos cujos nomes começam com test_. Cada método verifica um aspecto específico do seu código.
Uma suíte de testes é uma coleção de casos de teste que podem ser executados juntos. Por padrão, o unittest descobre e executa todos os métodos test_ em suas classes TestCase. Para verificar se o código produz os resultados esperados, são utilizados métodos de asserção como assertEqual, assertTrue, assertFalse e assertRaises. Esses métodos de asserção comparam os resultados reais com os esperados e relatam falhas caso não coincidam.
Para executar seus testes, é possível utilizar a linha de comando ou chamar unittest.main() ao final do seu arquivo de teste.
assertRaises segue um padrão distinto em comparação com outros métodos de asserção como assertEqual ou assertTrue. Em vez de verificar um valor final, ele funciona como um gerenciador de contexto utilizando a instrução with para criar uma zona protegida. Isso permite que o teste monitore o código enquanto ele é executado e "capture" o erro esperado.
1234567891011121314151617181920212223import unittest def add(a, b): return a + b def divide(a, b): return a / b class TestMathFunctions(unittest.TestCase): def test_add_positive_numbers(self): self.assertEqual(add(2, 3), 5) def test_add_negative_numbers(self): self.assertEqual(add(-2, -3), -5) def test_divide_normal(self): self.assertAlmostEqual(divide(10, 2), 5.0) def test_divide_by_zero(self): with self.assertRaises(ZeroDivisionError): divide(10, 0) unittest.main(argv=['first-arg-is-ignored'], exit=False)
A função unittest.main() neste capítulo inclui alguns parâmetros extras necessários apenas para este ambiente de aprendizagem. Eles ajudam o código a ser executado corretamente na plataforma e não fazem parte dos conceitos principais de Python que você precisa aprender agora.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo