setup
pip install pytest
assert
def test_sum():
assert 2 + 2 == 4
fixture
import pytest
@pytest.fixture
def user():
return {"name": "samir"}
def test_user(user):
assert user["name"] == "samir"
coverage
pytest --cov=src
panoramica
In questo capitolo su testing con pytest, test leggibili, fixture e coverage in modo semplice. L'obiettivo è trasformare i concetti in micro-pattern riutilizzabili con esempi piccoli e verificabili.
Lavora in sequenza: leggi, prova, modifica gli snippet e annota i trade-off principali (performance, leggibilità, manutenzione).
badge: testing ready
obiettivi
- capire e applicare setup in uno scenario reale
- capire e applicare assert in uno scenario reale
- capire e applicare fixture in uno scenario reale
- capire e applicare coverage in uno scenario reale
scheda rapida
def main():
dati = [1, 2, 3]
risultati = [x * 2 for x in dati]
print(risultati)
if __name__ == "__main__":
main()
Adatta questo scheletro agli esempi della lezione e sostituisci i dati con il tuo dominio.
tips
- usa un venv per ogni progetto
- separa logica e I/O
- mantieni funzioni piccole e nominative
- nomina i test in modo descrittivo
- usa parametrize per casi multipli
- mantieni fixture leggere
tip: Se un test è fragile, chiediti quale assunzione nascosta stai facendo.
mini progetto
Testa una funzione di sconto con casi limite.
- scrivi calcola_sconto()
- crea test parametrizzati
- verifica eccezioni
- aggiungi fixture per dati finti
output atteso: uno script o query ripetibile con risultati verificabili.
checklist
- ho eseguito gli snippet e controllato l'output
- ho annotato almeno 2 trade-off
- ho completato il mini progetto
- ho salvato un riepilogo personale