Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Escrevendo Testes com Unittest | Testes com Unittest e Pytest
Programação Estrutural em Python

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.

Note
Nota

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.

1234567891011121314151617181920212223
import 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)
Note
Nota

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.

question mark

Qual método de asserção do unittest deve ser usado para verificar se uma chamada de função gera uma exceção esperada?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 5. Capítulo 2

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Seção 5. Capítulo 2
some-alt