On souhaite écrire un test unitaire pour vérifier la sortie produite sur le terminal par la méthode Writer.hello_user()
. La classe est définie dans le fichier parts.py
myapp/
├── __init__.py
└── models
├── __init__.py
└── parts.py
from abc import abstractmethod class Writer: @abstractmethod def hello_user(username="Alice"): print (f"Hello {username}!")
Pour les tests on crée une arborescence dédiée basée sur l'arborescence des sources :
myapp/ tests/ ├── __init__.py └── myapp ├── __init__.py └── models ├── __init__.py └── test_parts.py
Pour pouvoir évaluer le contenu de la console on passe le paramètre capfd à la fonction de test:
from myapp.models.parts import Writer def test_hello_user(capfd): a_user = "John Doe" # L'appel de la méthode doit afficher un message sur la console Writer.hello_user(a_user) out, err = capfd.readouterr() assert out == "Hello John Doe!\n"