Rullst AcademyRullst Academy/Lição
Python: da primeira linha ao projeto · Lição 11 / 12

Testes para confiar melhor

Seu programa acertou um exemplo. Será que também respeita a fronteira? Um teste registra uma expectativa para ser repetida após cada mudança.

Trilhas de aprendizado12 min

Vamos descobrir juntos

  1. 1

    unittest faz parte de Python. Uma classe derivada de unittest.TestCase agrupa testes; métodos cujo nome começa com test_ descrevem casos. Não precisa dominar classes agora: use o formato mostrado.

  2. 2

    self.assertEqual(resultado, esperado) compara valores e registra uma falha se diferirem. Testamos um caso comum e a igualdade no limite.

  3. 3

    As demonstrações executam a suíte em memória e mostram quantidade de testes e sucesso. A versão 2 introduz + 1 na regra: os mesmos testes continuam rodando, mas deixam de passar.

  4. 4

    No computador, python -m unittest lesson.py -v (python3 no macOS/Ubuntu) mostra detalhes. Testes apoiam confiança nos casos cobertos; não provam ausência de todos os defeitos.

✦
SUA MISSÃO

Escrever testes unittest e interpretar uma falha sem alterar a expectativa para esconder o defeito.

Agora é a sua vez

Oficina de descobertas

Leia, preveja, confira

Compare as duas versões. Mostrar resultado revela uma saída preparada: este painel não executa Python. Depois pratique com o arquivo da atividade.
Mini experimento

Simulação didática: compare os cartões e confira suas previsões. O navegador não está compilando Rust nem iniciando um servidor.

import unittest

def remaining(limit, used):
    return limit - used

class TimeTests(unittest.TestCase):
    def test_regular(self):
        self.assertEqual(remaining(30, 10), 20)

    def test_exact_limit(self):
        self.assertEqual(remaining(30, 30), 0)

if __name__ == "__main__":
    suite = unittest.defaultTestLoader.loadTestsFromTestCase(TimeTests)
    result = unittest.TestResult()
    suite.run(result)
    print(result.testsRun)
    print(result.wasSuccessful())
Monte suas respostas e confira quando estiver pronto.
Uma pausa para entender

Depois de uma mudança, um teste que representava a regra correta falha. Qual é o próximo passo?

Preciso de uma pista

Um teste útil torna uma divergência visível.

Carregando sua jornada…

Leve com você

Adicione um teste para remaining(30, 0), esperado 30. Execute, introduza um erro pequeno, observe a falha e corrija o código. Explique um caso que seus testes ainda não cobrem.

PYTHON · .py

Sua bancada Python

Aqui você lê e prevê saídas preparadas. Para executar o código de verdade, baixe o arquivo da atividade, edite no computador e use Python. A correção da Rullst Academy avalia as respostas da lição, não comprova a execução local.

Salvar e executar

Extraia o ZIP da atividade numa pasta própria. Abra o terminal nessa pasta e use o comando do seu sistema. Se baixar o arquivo editado separadamente, use o nome real dele no comando. Salve antes de executar novamente.

Windows
python lesson.py
macOS / Ubuntu
python3 lesson.py
Meus arquivos e GitHub

O editor mantém um rascunho local e pode enviar um arquivo .py ao GitHub com sua confirmação. Baixe seu código editado para preservá-lo. O ZIP é material inicial; no projeto final, publique também os arquivos de dados e testes seguindo PUBLISH.md.

No seu ritmo

Meus arquivos e GitHub

Toda lição pode virar um registro seu: código, anotações ou um plano de prática. Guardar um arquivo no GitHub é opcional e não altera seu XP.

Manual do aluno

O editor e os downloads abrem quando esta lição estiver liberada para sua conta. Confira o acesso abaixo ou volte ao mapa da trilha.

Conferindo seu acesso à lição…

Rullstpetbot

A IA pode errar. Confira no material da lição.