Programação & Web
DeepSeek R1
Suite de Testes Unitários em Python com pytest, Fixtures e Cobertura
Prompt que gera uma suite pytest completa para um módulo: fixtures reutilizáveis, parametrização, mocks de I/O e relatório de cobertura.
0cópias
0joinhas
0favoritos
O prompt
Crie uma suite de testes unitários profissional em Python para o módulo {{nome_modulo}}.
Parâmetros:
- Módulo/Arquivo a Testar: {{nome_modulo}} (ex.: 'src/billing.py')
- Cobertura Mínima Alvo: {{cobertura_alvo}}%
- Framework de Testes: pytest
Requisitos:
1. Leia o código do módulo e cubra todos os caminhos: casos felizes, entradas de borda (vazio, None, valores extremos) e exceções esperadas — um teste por comportamento, nomeado test_<o_que>_<condicao>.
2. Fixtures em conftest.py para dados compartilhados (ex.: cliente de teste, banco efêmero ou mock de API); fixtures com escopo adequado (function por padrão).
3. Use @pytest.mark.parametrize para variações de entrada (mínimo 3 casos por função pública que aceita parâmetros) e unittest.mock/monkeypatch para I/O externo (rede, disco, tempo — freeze com freezegun se necessário).
4. Inclua pelo menos 1 teste de integração leve (ex.: fluxo completo de uma função pública que orquestra outras do módulo) marcado @pytest.mark.integration.
5. Configure pytest.ini/pyproject com: -ra, cobertura via pytest-cov com fail_under={{cobertura_alvo}}, e marker 'integration' para rodar separado.
6. Entregue também o comando exato de execução (local e CI) e uma lista dos 3 comportamentos mais arriscados do módulo que a suite cobre.
Como usar
- Substitua {{nome_modulo}} (caminho real do arquivo) e {{cobertura_alvo}} (ex.: 85).
- Cole no DeepSeek junto com o conteúdo do arquivo — ou aponte o caminho se usar Cursor/Copilot.
- pip install pytest pytest-cov freezegun && python -m pytest --cov: confira o relatório; os testes devem falhar de forma útil (mensagem dizendo qual comportamento quebrou).
- No CI, rode a suite com -m 'not integration' no job rápido e a integração no job lento — o prompt já separa por marker.
Exemplo de saída
tests/test_billing.py + conftest.py (~200 linhas): fixtures de cliente/banco mockado em conftest, parametrização com 3+ casos por função pública, mocks de rede/tempo (freezegun), 1 teste de integração marcado, pytest.ini com fail_under=85 e marker integration, comandos local/CI e lista dos 3 comportamentos mais arriscados cobertos.