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

Organizando e Executando Testes com pytest

Deslize para mostrar o menu

Quando você deseja escrever códigos de teste limpos, expressivos e de fácil manutenção em Python, o pytest é uma escolha popular. Diferente do framework embutido unittest, que segue uma estrutura rígida baseada em classes e exige métodos de asserção específicos como self.assertEqual, o pytest permite o uso de instruções assert padrão do Python dentro de funções simples. Isso reduz drasticamente o código repetitivo e torna seus testes mais concisos, já que não é mais necessário envolver a lógica em hierarquias complexas de classes ou memorizar dezenas de nomes de asserções específicas do framework apenas para verificar um resultado simples.

Um dos recursos mais poderosos do pytest é seu sistema de descoberta de testes. Simplesmente executando pytest no diretório do seu projeto, ele encontrará automaticamente todos os arquivos que correspondem ao padrão test_*.py ou *_test.py e executará todas as funções dentro desses arquivos que começam com test_. Isso significa que você não precisa especificar manualmente quais testes executar - o pytest faz isso por você.

Outra vantagem importante é o uso de fixtures. Fixtures cuidam da preparação e limpeza dos recursos necessários para seus testes, como arquivos temporários ou conexões com bancos de dados, de uma forma fácil de reutilizar. Basta decorar uma função com @pytest.fixture e então solicitá-la como entrada nas suas funções de teste. Isso mantém seu código modular e evita a repetição da mesma lógica de configuração.

Para começar a usar o pytest, primeiro é necessário instalá-lo. Utilize o seguinte comando no seu terminal:

pip install pytest

Isso fará o download e a instalação da versão mais recente do pytest, permitindo que você comece a escrever e executar seus testes imediatamente.

Veja a seguir uma demonstração prática de como utilizá-lo para escrever testes baseados em funções e definir fixtures reutilizáveis.

import pytest

# A simple function to test
def add(a, b):
    return a + b

# Define a fixture that provides test data
@pytest.fixture
def sample_numbers():
    return (3, 5)

# Test function using the fixture
def test_add_with_fixture(sample_numbers):
    a, b = sample_numbers
    result = add(a, b)
    assert result == 8

# Another simple test function
def test_add_negative_numbers():
    assert add(-2, -4) == -6
question mark

Qual é um benefício importante de usar o pytest em comparação ao unittest?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 5. Capítulo 6

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