Per fare un esempio leggermente inventato, diciamo che voglio provare che una funzione restituisce due numeri e che il primo è più piccolo del secondo:
def test_length():
result = my_function()
assert len(result) == 2
def test_order()
a, b = my_function()
assert a < b
Qui, se test_lengthfallisce, allora test_orderfallirà anche. È una buona pratica scrivere test_lengtho saltare?
EDIT: nota che in questa situazione, entrambi i test sono per lo più indipendenti l'uno dall'altro, ognuno può essere eseguito in modo isolato o potrebbe essere eseguito in ordine inverso, questo non ha importanza. Quindi nessuna di queste precedenti domande
- Come devo testare la funzionalità di una funzione che utilizza altre funzioni in essa?
- Ho bisogno di un unit test se ho già un test di integrazione?
- Come strutturare i test in cui un test è la configurazione di un altro test?
- Come gestire la dipendenza dal successo tra test unitari
è un duplicato di quello sopra.
Achiama Be restituisce lo stesso risultato, dovresti testare entrambi Ae B". Si tratta più delle sovrapposizioni dei test piuttosto che delle funzioni sotto test. (Anche se è confuso come sono attualmente chiamati).
lambda: type('', (), {'__len__': lambda self: 2})()passerà la prima, ma non la seconda.