Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Utilisation de l'instruction Assert dans Pytest : Validation des Conditions de Test | Cadre Pytest
Concepts Avancés de Python

bookUtilisation 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.

Tâche

Swipe to start coding

Écrivez des fonctions de test pytest pour valider les conditions suivantes :

  • Vérifier que l'appel de is_even(4) retourne True.
  • Vérifier que l'appel de add(2, 3) est égal à 5.
  • Vérifier que l'appel de multiply(3, 7) retourne 21, et fournir un message d'erreur détaillé si l'assertion échoue.
  • Vérifier que l'appel de divide(10, 0) déclenche une exception ZeroDivisionError.
  • Vérifier que la chaîne de caractères 'grape' existe dans la liste fruit_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

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 3
single

single

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

close

bookUtilisation 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.

Tâche

Swipe to start coding

Écrivez des fonctions de test pytest pour valider les conditions suivantes :

  • Vérifier que l'appel de is_even(4) retourne True.
  • Vérifier que l'appel de add(2, 3) est égal à 5.
  • Vérifier que l'appel de multiply(3, 7) retourne 21, et fournir un message d'erreur détaillé si l'assertion échoue.
  • Vérifier que l'appel de divide(10, 0) déclenche une exception ZeroDivisionError.
  • Vérifier que la chaîne de caractères 'grape' existe dans la liste fruit_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

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 3
single

single

some-alt