Använda Assert-Satsen i Pytest: Validering av Testvillkor
assert-satsen används för att verifiera att ett villkor är True. Om villkoret är False misslyckas testet. Pytest förbättrar den grundläggande assert genom att ge detaljerad utdata när kontrollen misslyckas, vilket gör det enklare att förstå vad som gick fel.
Enkla assertioner:
Kontrollera att villkoret utvärderas till True. Om det utvärderas till False kastar Pytest ett AssertionError och markerar testet som misslyckat.
assert condition
I nästa exempel ska word.isupper() returnera True om word är i versaler. Om inte, misslyckas testet.
def test_is_uppercase():
word = "HELLO"
assert word.isupper()
Jämförande assertioner:
assert actual == expected
För att verifiera att resultatet av en operation (actual) matchar det förväntade värdet.
def test_addition():
assert add(5, 3) == 8, "The addition function should return 8 for 5 + 3"
Här testas funktionen add för att säkerställa att den korrekt adderar två tal. Meddelandet efter kommatecknet ger ytterligare kontext om testet misslyckas.
Assertioner med detaljerad återkoppling:
assert condition, message
För att ange ett anpassat felmeddelande som visas när assertionen misslyckas, vilket ger mer insikt i problemet.
def test_multiply():
result = multiply(2, 5)
assert result == 10, f"Expected 10, got {result}"
Denna assertion kontrollerar om funktionen multiply returnerar 10 vid multiplikation av 2 och 5. Det anpassade meddelandet förtydligar det förväntade resultatet jämfört med det faktiska om testet misslyckas.
Assertioner för undantag:
pytest.raises(ExceptionType)
För att bekräfta att ett visst undantag kastas av en kodblock.
import pytest
def divide(x, y):
return x / y
def test_divide_zero():
with pytest.raises(ZeroDivisionError):
divide(10, 0)
Detta test säkerställer att division med noll kastar ett ZeroDivisionError. Det är viktigt för att testa felhantering i din kod.
Avancerade assertioner:
Använd assertioner för att kontrollera mer komplexa villkor, såsom innehåll i listor, ordböcker eller mer nyanserade tillstånd i din applikation.
def test_inventory():
inventory = ["apple", "banana", "cherry"]
assert "banana" in inventory, "Banana should be in the inventory"
Detta test kontrollerar om ett objekt finns i en lista och ger tydlig återkoppling om objektet saknas.
Swipe to start coding
Skriv pytest-testfunktioner för att validera följande villkor:
- Kontrollera att anropet
is_even(4)returnerarTrue. - Kontrollera att anropet
add(2, 3)är lika med5. - Kontrollera att anropet
multiply(3, 7)returnerar21, och ange ett detaljerat felmeddelande om kontrollen misslyckas. - Kontrollera att anropet
divide(10, 0)utlöser ettZeroDivisionError. Du kan verifiera detta med etttry / except-block och ettassert-uttryck. - Kontrollera att strängen
'grape'finns ifruit_list.
Skriv varje test som en separat funktion med prefixet test_.
Använd assert-uttryck för validering.
För det detaljerade felmeddelandet, använd en f-sträng som visar det faktiska resultatet om kontrollen misslyckas.
Lösning
Tack för dina kommentarer!
single
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Fantastiskt!
Completion betyg förbättrat till 3.13
Använda Assert-Satsen i Pytest: Validering av Testvillkor
Svep för att visa menyn
assert-satsen används för att verifiera att ett villkor är True. Om villkoret är False misslyckas testet. Pytest förbättrar den grundläggande assert genom att ge detaljerad utdata när kontrollen misslyckas, vilket gör det enklare att förstå vad som gick fel.
Enkla assertioner:
Kontrollera att villkoret utvärderas till True. Om det utvärderas till False kastar Pytest ett AssertionError och markerar testet som misslyckat.
assert condition
I nästa exempel ska word.isupper() returnera True om word är i versaler. Om inte, misslyckas testet.
def test_is_uppercase():
word = "HELLO"
assert word.isupper()
Jämförande assertioner:
assert actual == expected
För att verifiera att resultatet av en operation (actual) matchar det förväntade värdet.
def test_addition():
assert add(5, 3) == 8, "The addition function should return 8 for 5 + 3"
Här testas funktionen add för att säkerställa att den korrekt adderar två tal. Meddelandet efter kommatecknet ger ytterligare kontext om testet misslyckas.
Assertioner med detaljerad återkoppling:
assert condition, message
För att ange ett anpassat felmeddelande som visas när assertionen misslyckas, vilket ger mer insikt i problemet.
def test_multiply():
result = multiply(2, 5)
assert result == 10, f"Expected 10, got {result}"
Denna assertion kontrollerar om funktionen multiply returnerar 10 vid multiplikation av 2 och 5. Det anpassade meddelandet förtydligar det förväntade resultatet jämfört med det faktiska om testet misslyckas.
Assertioner för undantag:
pytest.raises(ExceptionType)
För att bekräfta att ett visst undantag kastas av en kodblock.
import pytest
def divide(x, y):
return x / y
def test_divide_zero():
with pytest.raises(ZeroDivisionError):
divide(10, 0)
Detta test säkerställer att division med noll kastar ett ZeroDivisionError. Det är viktigt för att testa felhantering i din kod.
Avancerade assertioner:
Använd assertioner för att kontrollera mer komplexa villkor, såsom innehåll i listor, ordböcker eller mer nyanserade tillstånd i din applikation.
def test_inventory():
inventory = ["apple", "banana", "cherry"]
assert "banana" in inventory, "Banana should be in the inventory"
Detta test kontrollerar om ett objekt finns i en lista och ger tydlig återkoppling om objektet saknas.
Swipe to start coding
Skriv pytest-testfunktioner för att validera följande villkor:
- Kontrollera att anropet
is_even(4)returnerarTrue. - Kontrollera att anropet
add(2, 3)är lika med5. - Kontrollera att anropet
multiply(3, 7)returnerar21, och ange ett detaljerat felmeddelande om kontrollen misslyckas. - Kontrollera att anropet
divide(10, 0)utlöser ettZeroDivisionError. Du kan verifiera detta med etttry / except-block och ettassert-uttryck. - Kontrollera att strängen
'grape'finns ifruit_list.
Skriv varje test som en separat funktion med prefixet test_.
Använd assert-uttryck för validering.
För det detaljerade felmeddelandet, använd en f-sträng som visar det faktiska resultatet om kontrollen misslyckas.
Lösning
Tack för dina kommentarer!
single