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

Introdução aos Testes em Python

Deslize para mostrar o menu

Testes são uma prática fundamental no desenvolvimento de software, garantindo que o código se comporte conforme o esperado e permaneça confiável à medida que evolui. Testes automatizados permitem verificar o código automaticamente, em vez de depender de verificações manuais que são demoradas e propensas a erros. Ao escrever testes, é possível detectar rapidamente quando alterações quebram funcionalidades existentes e refatorar ou expandir o código com confiança.

Uma das abordagens mais populares para testes é o desenvolvimento orientado a testes (TDD). No TDD, começa-se escrevendo um teste que descreve um comportamento ou funcionalidade desejada antes de implementar o código correspondente. Esse processo incentiva a reflexão cuidadosa sobre requisitos e casos extremos desde o início, resultando em um código mais limpo e fácil de manter. Após escrever o teste, implementa-se o código mínimo necessário para que o teste seja aprovado e, em seguida, o código é refatorado para maior clareza ou eficiência, executando os testes novamente para garantir que nada seja quebrado. Esse ciclo — escrever um teste, escrever o código, refatorar — auxilia na construção incremental de software robusto.

Testar não serve apenas para encontrar bugs. Também funciona como documentação viva do código, facilitando para outras pessoas (e para você mesmo no futuro) entenderem como o código deve funcionar. Testes automatizados são especialmente valiosos ao colaborar em equipes ou trabalhar em projetos grandes, pois fornecem uma rede de segurança que incentiva a experimentação e mudanças de código com confiança.

12345
# A function to add two numbers def add(a, b): return a + b print(add(2, 3))
# A basic test case for the add function using unittest
import unittest

class TestAddFunction(unittest.TestCase):
    def test_add_positive_numbers(self):
        self.assertEqual(add(2, 3), 5)

    def test_add_zero(self):
        self.assertEqual(add(0, 5), 5)

    def test_add_negative_numbers(self):
        self.assertEqual(add(-1, -1), -2)

O código fornecido define uma classe de caso de teste chamada TestAddFunction usando o framework unittest integrado do Python. Dentro dessa classe, encontram-se três métodos de teste:

  • test_add_positive_numbers verifica se ao chamar add(2, 3) o retorno é 5;
  • test_add_zero verifica se ao somar zero e cinco com add(0, 5) o retorno é 5;
  • test_add_negative_numbers confirma que ao somar dois números negativos, add(-1, -1), o retorno é -2.

Cada método de teste utiliza self.assertEqual para comparar o resultado real da função add com o valor esperado. Se algum teste falhar, o framework irá reportar, ajudando a identificar erros precocemente.

question mark

Qual das alternativas a seguir é um benefício fundamental dos testes automatizados no desenvolvimento em Python?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 5. Capítulo 1

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 1
some-alt