base alla disponibilità del pacchetto panda in ambiente di lavoro un metodo restituisce due diverse uscite:Come scrivere le unittests per una dipendenza opzionale in un pacchetto python?
- A se panda è disponibile
- Altrimenti un oggetto
pandas.DataFrame
numpy.recarray
.
Come dovrei scrivere unittest per questa classe?
Una soluzione mi viene in mente è quello di scrivere i test per entrambi i casi (con e senza installazione panda) e saltare prova di conseguenza, qualcosa di simile:
try:
import pandas
HAVE_PANDAS = True
except ImportError:
HAVE_PANDAS = False
import unittest
class TestClass(unittest.TestCase):
@unittest.skipUnless(HAVE_PANDAS, "requires pandas")
def tests_using_pandas(self):
# do something
@unittest.skipUnless(not HAVE_PANDAS, "doesn't require pandas")
def tests_without_pandas(self):
# do something
Ma non mi piace questa soluzione molto a causa della diminuzione della copertura del test e dei test di salto. Voglio eseguire i miei test per entrambi i casi. Sarebbe utile se qualcuno potesse suggerire una soluzione alternativa migliore per questo.