lezione 06

testing con pytest

test leggibili, fixture e coverage in modo semplice.

livello: base durata: 22 min output: suite test badge: testing ready

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
start a brief