[Python] pytest e classi
Manlio Perillo
manlio.perillo a gmail.com
Lun 26 Ott 2015 19:02:16 CET
2015-10-26 18:39 GMT+01:00 Perini Matteo <perini.matteo a 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
Maggiori informazioni sulla lista
Python