Utilisation de l'instruction Assert dans Pytest : Validation des Conditions de Test
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 l'instruction assert de base en fournissant une sortie détaillée lorsque l'assertion échoue, ce qui facilite la compréhension de l'erreur.
Assertions simples :
Vérification que la condition est évaluée à True. Si elle est évaluée à False, Pytest lève une AssertionError et marque le test comme échoué.
assert condition
Dans l'exemple suivant, word.isupper() doit 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étaillé :
assert condition, message
Pour fournir un message d'erreur personnalisé qui s'affiche lorsque l'assertion échoue, offrant ainsi 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 l'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 garantit que la division par zéro lève une ZeroDivisionError. Ceci est essentiel pour tester la gestion des erreurs dans votre code.
Assertions avancées :
Utilisation des assertions pour vérifier des conditions plus complexes, telles que le contenu de listes, de 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 absent.
Swipe to start coding
Écrivez des fonctions de test pytest pour valider les conditions suivantes :
- Vérifier que l'appel de
is_even(4)retourneTrue. - Vérifier que l'appel de
add(2, 3)est égal à5. - Vérifier que l'appel de
multiply(3, 7)retourne21, et fournir un message d'erreur détaillé si l'assertion échoue. - Vérifier que l'appel de
divide(10, 0)déclenche une exceptionZeroDivisionError. - Vérifier que la chaîne de caractères
'grape'existe dans la listefruit_list.
Écrivez chaque test comme une fonction distincte en utilisant le préfixe test_. Utilisez des instructions assert pour la validation. Pour l'exception, utilisez le gestionnaire de contexte pytest.raises. Pour le message détaillé, utilisez une f-string qui affiche le résultat réel si l'assertion échoue.
Solution
Merci pour vos commentaires !
single
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Génial!
Completion taux amélioré à 3.13
Utilisation de l'instruction Assert dans Pytest : Validation des Conditions de Test
Glissez pour afficher le menu
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 l'instruction assert de base en fournissant une sortie détaillée lorsque l'assertion échoue, ce qui facilite la compréhension de l'erreur.
Assertions simples :
Vérification que la condition est évaluée à True. Si elle est évaluée à False, Pytest lève une AssertionError et marque le test comme échoué.
assert condition
Dans l'exemple suivant, word.isupper() doit 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étaillé :
assert condition, message
Pour fournir un message d'erreur personnalisé qui s'affiche lorsque l'assertion échoue, offrant ainsi 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 l'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 garantit que la division par zéro lève une ZeroDivisionError. Ceci est essentiel pour tester la gestion des erreurs dans votre code.
Assertions avancées :
Utilisation des assertions pour vérifier des conditions plus complexes, telles que le contenu de listes, de 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 absent.
Swipe to start coding
Écrivez des fonctions de test pytest pour valider les conditions suivantes :
- Vérifier que l'appel de
is_even(4)retourneTrue. - Vérifier que l'appel de
add(2, 3)est égal à5. - Vérifier que l'appel de
multiply(3, 7)retourne21, et fournir un message d'erreur détaillé si l'assertion échoue. - Vérifier que l'appel de
divide(10, 0)déclenche une exceptionZeroDivisionError. - Vérifier que la chaîne de caractères
'grape'existe dans la listefruit_list.
Écrivez chaque test comme une fonction distincte en utilisant le préfixe test_. Utilisez des instructions assert pour la validation. Pour l'exception, utilisez le gestionnaire de contexte pytest.raises. Pour le message détaillé, utilisez une f-string qui affiche le résultat réel si l'assertion échoue.
Solution
Merci pour vos commentaires !
single