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 breidt de basis assert uit door gedetailleerde output te geven wanneer de bewering faalt, waardoor het eenvoudiger wordt te begrijpen wat er misging.

Eenvoudige Asserties:

Controleren 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

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 waarborgen dat deze twee getallen correct optelt. Het bericht na de komma biedt extra context als de test faalt.

Asserties met Gedetailleerde Feedback:

assert condition, message

Een aangepaste foutmelding geven die wordt weergegeven wanneer de assertie faalt, voor meer inzicht 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)

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 waarborgt dat delen door nul een ZeroDivisionError veroorzaakt. Dit is essentieel voor het testen van foutafhandeling in de code.

Geavanceerde Asserties:

Gebruik asserties om complexere condities te controleren, zoals de inhoud van lijsten, dictionaries of meer genuanceerde toestanden in de 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:

  • Controleren dat het aanroepen van is_even(4) True retourneert.
  • Controleren dat het aanroepen van add(2, 3) gelijk is aan 5.
  • Controleren dat het aanroepen van multiply(3, 7) 21 retourneert, en geef een gedetailleerde foutmelding als de assertie faalt.
  • Controleren dat het aanroepen van divide(10, 0) een ZeroDivisionError veroorzaakt.
  • Controleren 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. Gebruik voor de uitzondering de pytest.raises contextmanager. Gebruik voor het gedetailleerde bericht 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.

Suggested prompts:

Can you explain how pytest improves the output of failed assertions?

What are some best practices for writing custom error messages in assertions?

How do I use pytest to test for exceptions in my code?

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 breidt de basis assert uit door gedetailleerde output te geven wanneer de bewering faalt, waardoor het eenvoudiger wordt te begrijpen wat er misging.

Eenvoudige Asserties:

Controleren 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

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 waarborgen dat deze twee getallen correct optelt. Het bericht na de komma biedt extra context als de test faalt.

Asserties met Gedetailleerde Feedback:

assert condition, message

Een aangepaste foutmelding geven die wordt weergegeven wanneer de assertie faalt, voor meer inzicht 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)

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 waarborgt dat delen door nul een ZeroDivisionError veroorzaakt. Dit is essentieel voor het testen van foutafhandeling in de code.

Geavanceerde Asserties:

Gebruik asserties om complexere condities te controleren, zoals de inhoud van lijsten, dictionaries of meer genuanceerde toestanden in de 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:

  • Controleren dat het aanroepen van is_even(4) True retourneert.
  • Controleren dat het aanroepen van add(2, 3) gelijk is aan 5.
  • Controleren dat het aanroepen van multiply(3, 7) 21 retourneert, en geef een gedetailleerde foutmelding als de assertie faalt.
  • Controleren dat het aanroepen van divide(10, 0) een ZeroDivisionError veroorzaakt.
  • Controleren 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. Gebruik voor de uitzondering de pytest.raises contextmanager. Gebruik voor het gedetailleerde bericht 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