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 ett påstående misslyckas, vilket gör det enklare att förstå vad som gick fel.
Enkla påståenden:
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 påståenden:
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.
Påståenden med detaljerad återkoppling:
assert condition, message
För att tillhandahålla ett anpassat felmeddelande som visas när påståendet misslyckas, vilket ger mer insikt i problemet.
def test_multiply():
result = multiply(2, 5)
assert result == 10, f"Expected 10, got {result}"
Detta påstående kontrollerar om funktionen multiply returnerar 10 när man multiplicerar 2 och 5. Det anpassade meddelandet förtydligar det förväntade resultatet jämfört med det faktiska om testet misslyckas.
Påståenden 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 påståenden:
Använd påståenden för att kontrollera mer komplexa villkor, såsom innehållet 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 av
is_even(4)returnerarTrue. - Kontrollera att anropet av
add(2, 3)är lika med5. - Kontrollera att anropet av
multiply(3, 7)returnerar21, och ge ett detaljerat felmeddelande om kontrollen misslyckas. - Kontrollera att anropet av
divide(10, 0)utlöser ettZeroDivisionError. - Kontrollera att strängen
'grape'finns ifruit_list.
Skriv varje test som en separat funktion med prefixet test_. Använd assert-satser för validering. För undantaget, använd kontext-hanteraren pytest.raises. För det detaljerade meddelandet, 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
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?
Awesome!
Completion rate improved to 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 ett påstående misslyckas, vilket gör det enklare att förstå vad som gick fel.
Enkla påståenden:
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 påståenden:
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.
Påståenden med detaljerad återkoppling:
assert condition, message
För att tillhandahålla ett anpassat felmeddelande som visas när påståendet misslyckas, vilket ger mer insikt i problemet.
def test_multiply():
result = multiply(2, 5)
assert result == 10, f"Expected 10, got {result}"
Detta påstående kontrollerar om funktionen multiply returnerar 10 när man multiplicerar 2 och 5. Det anpassade meddelandet förtydligar det förväntade resultatet jämfört med det faktiska om testet misslyckas.
Påståenden 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 påståenden:
Använd påståenden för att kontrollera mer komplexa villkor, såsom innehållet 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 av
is_even(4)returnerarTrue. - Kontrollera att anropet av
add(2, 3)är lika med5. - Kontrollera att anropet av
multiply(3, 7)returnerar21, och ge ett detaljerat felmeddelande om kontrollen misslyckas. - Kontrollera att anropet av
divide(10, 0)utlöser ettZeroDivisionError. - Kontrollera att strängen
'grape'finns ifruit_list.
Skriv varje test som en separat funktion med prefixet test_. Använd assert-satser för validering. För undantaget, använd kontext-hanteraren pytest.raises. För det detaljerade meddelandet, använd en f-sträng som visar det faktiska resultatet om kontrollen misslyckas.
Lösning
Tack för dina kommentarer!
single