Sobes.tech
Junior — Middle

Como garantir a independência e isolamento dos testes para evitar influências mútuas durante a execução?

sobes.tech IA

Resposta da IA

Para garantir a independência e isolamento dos testes em Python, é importante que cada teste não dependa do estado criado por outros testes. Isso é alcançado por:

  • Uso de fixtures (por exemplo, no pytest) para preparar e limpar o ambiente antes e depois de cada teste.
  • Evitar variáveis globais e estados que possam mudar entre testes.
  • Uso de mocks e stubs para isolar dependências externas.
  • Executar cada teste em um contexto separado ou até mesmo em um processo (por exemplo, com pytest-xdist).

Exemplo usando uma fixture do pytest:

import pytest

@pytest.fixture
def setup_data():
    data = {'count': 0}
    yield data
    # limpeza, se necessário


def test_increment(setup_data):
    setup_data['count'] += 1
    assert setup_data['count'] == 1


def test_reset(setup_data):
    assert setup_data['count'] == 0

Aqui, cada teste recebe um dicionário novo, o que exclui a influência de um teste no outro.