Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Het Gebruik van de Assert-Instructie in Pytest: Het Valideren van Testcondities | Pytest-Framework Beheersen
Python Structureel Programmeren

bookHet Gebruik van de Assert-Instructie in Pytest: Het Valideren van Testcondities

De assert-instructie wordt gebruikt om te verifiëren dat een conditie True is. Als de conditie False is, faalt de test. Pytest verbetert de standaard assert door gedetailleerde output te geven wanneer de bewering faalt, waardoor het eenvoudiger wordt om te begrijpen wat er misging.

Eenvoudige Asserties:

Controle dat de conditie wordt geëvalueerd als True. Als deze wordt geëvalueerd als False, geeft Pytest een AssertionError en markeert de test als mislukt.

assert condition

In het volgende voorbeeld zou word.isupper() True moeten retourneren als word in hoofdletters staat. Zo niet, dan faalt de test.

def test_is_uppercase():
    word = "HELLO"
    assert word.isupper()

Vergelijkende Asserties:

assert actual == expected

Om te verifiëren dat het resultaat van een bewerking (actual) overeenkomt met de verwachte waarde.

def test_addition():
    assert add(5, 3) == 8, "The addition function should return 8 for 5 + 3"

Hier wordt de add-functie getest om te verzekeren dat deze twee getallen correct optelt. Het bericht na de komma geeft extra context als de test faalt.

Asserties met Gedetailleerde Feedback:

assert condition, message

Om een aangepaste foutmelding te geven die wordt weergegeven wanneer de assertie faalt, wat meer inzicht biedt in het probleem.

def test_multiply():
    result = multiply(2, 5)
    assert result == 10, f"Expected 10, got {result}"

Deze assertie controleert of de functie multiply 10 retourneert bij het vermenigvuldigen van 2 en 5. Het aangepaste bericht verduidelijkt de verwachte uitkomst versus het daadwerkelijke resultaat als de test faalt.

Asserties voor Excepties:

pytest.raises(ExceptionType)

Om te bevestigen dat een bepaald type exceptie wordt opgegooid door een codeblok.

import pytest

def divide(x, y):
    return x / y

def test_divide_zero():
    with pytest.raises(ZeroDivisionError):
        divide(10, 0)

Deze test verzekert dat delen door nul een ZeroDivisionError oplevert. Dit is essentieel voor het testen van foutafhandeling in uw code.

Geavanceerde Asserties:

Gebruik asserties om meer complexe condities te controleren, zoals de inhoud van lijsten, woordenboeken of meer genuanceerde toestanden in uw applicatie.

def test_inventory():
    inventory = ["apple", "banana", "cherry"]
    assert "banana" in inventory, "Banana should be in the inventory"

Deze test controleert of een item aanwezig is in een lijst en geeft duidelijke feedback als het item ontbreekt.

Taak

Swipe to start coding

Schrijf pytest-testfuncties om de volgende voorwaarden te valideren:

  1. Controleer dat het aanroepen van is_even(4) True retourneert.
  2. Controleer dat het aanroepen van add(2, 3) gelijk is aan 5.
  3. Controleer dat het aanroepen van multiply(3, 7) 21 retourneert en geef een gedetailleerde foutmelding als de assertie faalt.
  4. Controleer dat het aanroepen van divide(10, 0) een ZeroDivisionError oplevert. Je kunt dit verifiëren met een try / except-blok en een assert-statement.
  5. Controleer dat de string 'grape' voorkomt in de fruit_list.

Schrijf elke test als een aparte functie met het voorvoegsel test_. Gebruik assert-statements voor validatie. Voor de gedetailleerde foutmelding gebruik je een f-string die het werkelijke resultaat toont als de assertie faalt.

Oplossing

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 3
single

single

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

close

bookHet Gebruik van de Assert-Instructie in Pytest: Het Valideren van Testcondities

Veeg om het menu te tonen

De assert-instructie wordt gebruikt om te verifiëren dat een conditie True is. Als de conditie False is, faalt de test. Pytest verbetert de standaard assert door gedetailleerde output te geven wanneer de bewering faalt, waardoor het eenvoudiger wordt om te begrijpen wat er misging.

Eenvoudige Asserties:

Controle dat de conditie wordt geëvalueerd als True. Als deze wordt geëvalueerd als False, geeft Pytest een AssertionError en markeert de test als mislukt.

assert condition

In het volgende voorbeeld zou word.isupper() True moeten retourneren als word in hoofdletters staat. Zo niet, dan faalt de test.

def test_is_uppercase():
    word = "HELLO"
    assert word.isupper()

Vergelijkende Asserties:

assert actual == expected

Om te verifiëren dat het resultaat van een bewerking (actual) overeenkomt met de verwachte waarde.

def test_addition():
    assert add(5, 3) == 8, "The addition function should return 8 for 5 + 3"

Hier wordt de add-functie getest om te verzekeren dat deze twee getallen correct optelt. Het bericht na de komma geeft extra context als de test faalt.

Asserties met Gedetailleerde Feedback:

assert condition, message

Om een aangepaste foutmelding te geven die wordt weergegeven wanneer de assertie faalt, wat meer inzicht biedt in het probleem.

def test_multiply():
    result = multiply(2, 5)
    assert result == 10, f"Expected 10, got {result}"

Deze assertie controleert of de functie multiply 10 retourneert bij het vermenigvuldigen van 2 en 5. Het aangepaste bericht verduidelijkt de verwachte uitkomst versus het daadwerkelijke resultaat als de test faalt.

Asserties voor Excepties:

pytest.raises(ExceptionType)

Om te bevestigen dat een bepaald type exceptie wordt opgegooid door een codeblok.

import pytest

def divide(x, y):
    return x / y

def test_divide_zero():
    with pytest.raises(ZeroDivisionError):
        divide(10, 0)

Deze test verzekert dat delen door nul een ZeroDivisionError oplevert. Dit is essentieel voor het testen van foutafhandeling in uw code.

Geavanceerde Asserties:

Gebruik asserties om meer complexe condities te controleren, zoals de inhoud van lijsten, woordenboeken of meer genuanceerde toestanden in uw applicatie.

def test_inventory():
    inventory = ["apple", "banana", "cherry"]
    assert "banana" in inventory, "Banana should be in the inventory"

Deze test controleert of een item aanwezig is in een lijst en geeft duidelijke feedback als het item ontbreekt.

Taak

Swipe to start coding

Schrijf pytest-testfuncties om de volgende voorwaarden te valideren:

  1. Controleer dat het aanroepen van is_even(4) True retourneert.
  2. Controleer dat het aanroepen van add(2, 3) gelijk is aan 5.
  3. Controleer dat het aanroepen van multiply(3, 7) 21 retourneert en geef een gedetailleerde foutmelding als de assertie faalt.
  4. Controleer dat het aanroepen van divide(10, 0) een ZeroDivisionError oplevert. Je kunt dit verifiëren met een try / except-blok en een assert-statement.
  5. Controleer dat de string 'grape' voorkomt in de fruit_list.

Schrijf elke test als een aparte functie met het voorvoegsel test_. Gebruik assert-statements voor validatie. Voor de gedetailleerde foutmelding gebruik je een f-string die het werkelijke resultaat toont als de assertie faalt.

Oplossing

Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 3
single

single

some-alt