Utilizzo dell'Istruzione Assert in Pytest: Validazione delle Condizioni di Test
L'istruzione assert viene utilizzata per verificare che una condizione sia True. Se la condizione è False, il test fallisce. Pytest migliora il semplice assert fornendo un output dettagliato quando l'asserzione fallisce, facilitando la comprensione dell'errore.
Asserzioni Semplici:
Verifica che la condizione sia valutata come True. Se viene valutata come False, Pytest solleva un AssertionError e segna il test come fallito.
assert condition
Nel seguente esempio, word.isupper() dovrebbe restituire True se word è in maiuscolo. In caso contrario, il test fallisce.
def test_is_uppercase():
word = "HELLO"
assert word.isupper()
Asserzioni Comparative:
assert actual == expected
Per verificare che il risultato di un'operazione (actual) corrisponda al valore atteso.
def test_addition():
assert add(5, 3) == 8, "The addition function should return 8 for 5 + 3"
Qui la funzione add viene testata per assicurarsi che sommi correttamente due numeri. Il messaggio dopo la virgola fornisce un contesto aggiuntivo in caso di fallimento del test.
Asserzioni con Feedback Dettagliato:
assert condition, message
Per fornire un messaggio di errore personalizzato che viene mostrato quando l'asserzione fallisce, offrendo maggiori dettagli sul problema.
def test_multiply():
result = multiply(2, 5)
assert result == 10, f"Expected 10, got {result}"
Questa asserzione verifica che la funzione multiply restituisca 10 moltiplicando 2 e 5. Il messaggio personalizzato chiarisce l'esito atteso rispetto al risultato effettivo in caso di fallimento del test.
Asserzioni per Eccezioni:
pytest.raises(ExceptionType)
Per confermare che una determinata eccezione venga sollevata da un blocco di codice.
import pytest
def divide(x, y):
return x / y
def test_divide_zero():
with pytest.raises(ZeroDivisionError):
divide(10, 0)
Questo test assicura che la divisione per zero sollevi un ZeroDivisionError. È fondamentale per testare la gestione degli errori nel codice.
Asserzioni Avanzate:
Utilizzare le asserzioni per verificare condizioni più complesse, come il contenuto di liste, dizionari o stati più articolati nell'applicazione.
def test_inventory():
inventory = ["apple", "banana", "cherry"]
assert "banana" in inventory, "Banana should be in the inventory"
Questo test verifica la presenza di un elemento in una lista, fornendo un feedback chiaro se l'elemento manca.
Swipe to start coding
Scrivere funzioni di test pytest per validare le seguenti condizioni:
- Verificare che la chiamata a
is_even(4)restituiscaTrue. - Verificare che la chiamata a
add(2, 3)sia uguale a5. - Verificare che la chiamata a
multiply(3, 7)restituisca21e fornire un messaggio di errore dettagliato se l'asserzione fallisce. - Verificare che la chiamata a
divide(10, 0)generi unZeroDivisionError. È possibile verificarlo utilizzando un bloccotry / excepte un'istruzioneassert. - Verificare che la stringa
'grape'sia presente infruit_list.
Scrivere ciascun test come funzione separata utilizzando il prefisso test_.
Utilizzare le istruzioni assert per la validazione.
Per il messaggio di errore dettagliato, utilizzare una f-string che mostri il risultato effettivo in caso di fallimento dell'asserzione.
Soluzione
Grazie per i tuoi commenti!
single
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Fantastico!
Completion tasso migliorato a 3.13
Utilizzo dell'Istruzione Assert in Pytest: Validazione delle Condizioni di Test
Scorri per mostrare il menu
L'istruzione assert viene utilizzata per verificare che una condizione sia True. Se la condizione è False, il test fallisce. Pytest migliora il semplice assert fornendo un output dettagliato quando l'asserzione fallisce, facilitando la comprensione dell'errore.
Asserzioni Semplici:
Verifica che la condizione sia valutata come True. Se viene valutata come False, Pytest solleva un AssertionError e segna il test come fallito.
assert condition
Nel seguente esempio, word.isupper() dovrebbe restituire True se word è in maiuscolo. In caso contrario, il test fallisce.
def test_is_uppercase():
word = "HELLO"
assert word.isupper()
Asserzioni Comparative:
assert actual == expected
Per verificare che il risultato di un'operazione (actual) corrisponda al valore atteso.
def test_addition():
assert add(5, 3) == 8, "The addition function should return 8 for 5 + 3"
Qui la funzione add viene testata per assicurarsi che sommi correttamente due numeri. Il messaggio dopo la virgola fornisce un contesto aggiuntivo in caso di fallimento del test.
Asserzioni con Feedback Dettagliato:
assert condition, message
Per fornire un messaggio di errore personalizzato che viene mostrato quando l'asserzione fallisce, offrendo maggiori dettagli sul problema.
def test_multiply():
result = multiply(2, 5)
assert result == 10, f"Expected 10, got {result}"
Questa asserzione verifica che la funzione multiply restituisca 10 moltiplicando 2 e 5. Il messaggio personalizzato chiarisce l'esito atteso rispetto al risultato effettivo in caso di fallimento del test.
Asserzioni per Eccezioni:
pytest.raises(ExceptionType)
Per confermare che una determinata eccezione venga sollevata da un blocco di codice.
import pytest
def divide(x, y):
return x / y
def test_divide_zero():
with pytest.raises(ZeroDivisionError):
divide(10, 0)
Questo test assicura che la divisione per zero sollevi un ZeroDivisionError. È fondamentale per testare la gestione degli errori nel codice.
Asserzioni Avanzate:
Utilizzare le asserzioni per verificare condizioni più complesse, come il contenuto di liste, dizionari o stati più articolati nell'applicazione.
def test_inventory():
inventory = ["apple", "banana", "cherry"]
assert "banana" in inventory, "Banana should be in the inventory"
Questo test verifica la presenza di un elemento in una lista, fornendo un feedback chiaro se l'elemento manca.
Swipe to start coding
Scrivere funzioni di test pytest per validare le seguenti condizioni:
- Verificare che la chiamata a
is_even(4)restituiscaTrue. - Verificare che la chiamata a
add(2, 3)sia uguale a5. - Verificare che la chiamata a
multiply(3, 7)restituisca21e fornire un messaggio di errore dettagliato se l'asserzione fallisce. - Verificare che la chiamata a
divide(10, 0)generi unZeroDivisionError. È possibile verificarlo utilizzando un bloccotry / excepte un'istruzioneassert. - Verificare che la stringa
'grape'sia presente infruit_list.
Scrivere ciascun test come funzione separata utilizzando il prefisso test_.
Utilizzare le istruzioni assert per la validazione.
Per il messaggio di errore dettagliato, utilizzare una f-string che mostri il risultato effettivo in caso di fallimento dell'asserzione.
Soluzione
Grazie per i tuoi commenti!
single