vedi exp10 per le spiegazioni sull'ambiente in cui stiamo alavorando (applicazione Conteggi)

I punti salienti di questa applicazione sono due
- le funzioni somma e sottrazione dovrebbero essere testate per essere sicuri che funzionino in tutti i casi ragionevoli
- $som o $sot devono cambiare dopo l'esecuzione di un'operazione, cioe' subire un effetto collaterale)

Qui finiamo di approfondire l'indagine su somma()


Ora usiamo un docblock per definire un "dataProvider"
Si tratta di una funzione che produce i dati sui quali far fare i test alla funzione testSommaTuttiInsiemeConDataProvider

La funzione dataprovider si chiama experimentalValues()

La funzione testSommaTuttiInsiemeConDataProvider viene premessa dal docblock
/**
 * @dataprovider experimentalValues
 */
in modo che phpunit sappia come gestirla.
Questa funzione ha tre parametri, che sono i tre dati da usare per valutare un'asserzione.
In questa funzione ora c'e' una sola asserzione.

Quando lanciamo i test, phpunit prende un array di dati alla volta dal dataprovider e lo serve a testSommaTuttiInsiemeConDataProvider, passando i tre elementi dell'array come parametri.
E poi testSommaTuttiInsiemeConDataProvider esegue l'asserzione.

Quando eseguiamo il test, in output vediamo l'esecuzione delle varie asserzioni, numerate.
In questo modo e' facile capire, in caso di fallimento, quale asserzione e' fallita e quindi quali dati di test evidenziano un bug.
