[Python] pytest e classi

Manlio Perillo manlio.perillo a gmail.com
Lun 26 Ott 2015 17:56:36 CET


2015-10-26 17:32 GMT+01:00 Perini Matteo <perini.matteo a gmail.com>:
> Ciao,
> sto iniziando ad usare pytest.
> Probabilmente mi sto perdendo in un bicchier d'acqua ma ho grossi problemi
> con il passaggio di parametri alle funzioni di test.
> Faccio un esempio che forse č pių facile
>
> Ipotizziamo un file (xxx.py) fatto cosė:
>
> #!/usr/bin/env python3
> # -*- coding: utf-8 -*-
>
> import numpy as np
>
> def plusone(x):
>     return x+1
>
> class CC():
>     self.a = 2
>     self.b = 4
>     self.c = 5
>
>     def somma(self):
>         return  self.a+self.b+self.c
>
>    somma()

L'indentazione non č corretta; cosa stai facendo esattamente?

>
> -------------------
> Come faccio a testare la funzione somma?

Scrivi una funzione di test, tipo `test_somma`, e chiami la funzione
somma con diversi parametri di input e controlli
che l'output sia corretto.

> L'unico modo che ho trovato č stato quello di cambiare la funzione della
> classe cosė:
>
>     def somma(self,a,b,c):
>         self.a=a
>         self.b=b
>         self.c=c
>         return  self.a+self.b+self.c
>    somma(CC,self.a,self.b,self.c)
>
> ma mi sembra una complicazione inutile.

Io non vedo il senso di quello che vuoi fare...

>
> Ho un file esterno per richiamare tutti i test_xxx.py fatto cosė:
>
> from xxx import *
> from xxx import CC
>
>
> def test_somma():
>     assert somma(2,3,3)==8
>
>
> Il test funziona ma non mi sembra proprio il modo giusto di operare
>

Č l'unico modo.
Ah, e **cerca** di evitare * nell'import.


Ciao  Manlio


Maggiori informazioni sulla lista Python