2015-10-26 18:39 GMT+01:00 Perini Matteo <perini.mat...@gmail.com>: > Il 26/10/2015 18:56, Manlio Perillo ha scritto: > [...] > class CC(): > def __init__(self): > self.a = 2 > self.b = 4 > self.c = 5 > > def somma(self): > return self.a+self.b+self.c > def test_somma(): > assert somma()==11 >
test_somma **non** va messo nel modulo principale, ma nel modulo di test. > if __name__=="__main__": > tt=CC() > print(tt.somma()) > > > se do il comando: > py.test-3 pt.py > > pytest non trova nessun test da fare! Ovvio che non lo trova. Laggi la documentazione di pytest per vedere come vengono trovate le funzioni di test. > se richiamo il test da un file esterno (test_pt.py) in questo modo: > > from pt import CC > > def test_somma(): > CC.a=2 > CC.b=4 > CC.c=5 > assert CC.somma(CC)==11 > > il test funziona. > > Ma è il modo giusto di passare i parametri alla funzione di test? E' l'unico modo di fare unit test. Il problema è che quel codice è sbagliato; non è il modo corretto di usare le classi! Il modo corretto è: def test_somma(): cc = CC(2, 4, 5) assert cc.somma() == 11 Ciao Manlio _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python