Contenu du cours
Concepts Avancés de Python
Concepts Avancés de Python
Instruction Assert
L'instruction assert
est utilisée pour vérifier qu'une condition est True
. Si la condition est False
, le test échoue. Pytest améliore le assert
de base en fournissant une sortie détaillée lorsque l'assertion échoue, ce qui facilite la compréhension de ce qui s'est mal passé.
Assertions Simples :
Vérifiez que la condition est évaluée comme True
. Si elle est évaluée comme False
, Pytest lève une AssertionError
et marque le test comme échoué.
assert condition
Dans l'exemple suivant, word.isupper()
devrait retourner True
si word
est en majuscules. Sinon, le test échoue.
def test_is_uppercase():
word = "HELLO"
assert word.isupper()
Assertions Comparatives :
assert actual == expected
Pour vérifier que le résultat d'une opération (actual) correspond à la valeur attendue.
def test_addition():
assert add(5, 3) == 8, "The addition function should return 8 for 5 + 3"
Ici, la fonction add est testée pour s'assurer qu'elle additionne correctement deux nombres. Le message après la virgule fournit un contexte supplémentaire si le test échoue.
Assertions avec Retour d'Information Détaillé :
assert condition, message
Pour fournir un message d'erreur personnalisé qui s'affiche lorsque l'assertion échoue, offrant plus d'informations sur le problème.
def test_multiply():
result = multiply(2, 5)
assert result == 10, f"Expected 10, got {result}"
Cette assertion vérifie si la fonction multiply
retourne 10
lors de la multiplication de 2
et 5
. Le message personnalisé clarifie le résultat attendu par rapport au résultat réel si le test échoue.
Assertions pour les Exceptions :
pytest.raises(ExceptionType)
Pour confirmer qu'une certaine exception est levée par un bloc de code.
import pytest
def divide(x, y):
return x / y
def test_divide_zero():
with pytest.raises(ZeroDivisionError):
divide(10, 0)
Ce test s'assure que la division par zéro lève une ZeroDivisionError
. C'est essentiel pour tester la gestion des erreurs dans votre code.
Assertions Avancées :
Utilisez des assertions pour vérifier des conditions plus complexes, telles que le contenu des listes, des dictionnaires ou des états plus nuancés dans votre application.
def test_inventory():
inventory = ["apple", "banana", "cherry"]
assert "banana" in inventory, "Banana should be in the inventory"
Ce test vérifie la présence d'un élément dans une liste, fournissant un retour clair si l'élément est manquant.
Merci pour vos commentaires !