vedi exp10 per le spiegazioni sull'ambiente in cui stiamo lavorando (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 approfondiamo l'indagine su somma() e sottrazione() con numerosi test

In verita' approfondoamo solo somma()

Rinominiamo il test sulla somma, accettando il fatto che era un test molto generico, che funzionava su due interi positivi, e che in realta' dovrebbe chiamarsi piuttosto
testSommaInteriPositivi 

Poi aggiungiamo i test 
testSommaInteriNeg 
testSommaInteriNegPos 

e poi ancora ... visto che le somme si potrebbero fare anche su numeri reali
testSommaRealiNegPos (un negativo e un positivo)
testSommaRealiNegNeg 
testSommaRealeIntero (un reale e un intero)

e ci fermiamo qui, sapendo che in realta' potremmo elencare molti piu' test e nella vita reale dovremmo farlo

infine rinominiamo il test sulla sottrazione, come
testSottrazioneMoltoGenerico

Eseguiamo phpunit.

Poi definiamo un 
testSommaInteriTuttiInsieme
con l'idea di unificare tutti i test precedenti sulla somma.
La pratica di mettere tante asserzioni in un test non e' molto consigliabile.
Qui lo facciamo perche' l'obiettivo e' far vedere la tecnica d'uso del ***dataProvider***.

Inizialmente definiamo 
testSommaInteriTuttiInsieme
come una funzione in cui e' definito un array di 5 array;
ogni array interno e' di 3 elementi, rispettivamente il risultato, il primo addendo, e il secondo addendo in una somma

es. [23, 11, 12] sara' usato per scrivere un'asserzione in cui si verifica che 23 e' il risultato di 11 piu' 12.

la funzione testSommaInteriTuttiInsieme
ha l'array suddetto, $dati
e lo usa per fare 5 asserzioni

Ci sia aspetta che chi legge queste note le metta in pratica ...

Eseguiamo phpunit, eventualmente tante volte, una per ogni funzione che aggiungiamo. 

Tra le altre cose vediamo come cresce il numero di asserzioni valutate (il numero di test e' cresciuto di uno con testSommaInteriTuttiInsieme, poi rimane uguale). 


Guardando testSommaInteriTuttiInsieme
si capisce che le asserzioni possono essere raccolte in un ciclo foreach ...


Facciamo anche qualche esperimento modificando le asserzioni e vedendone qualcuna fallire. 
A colori fa un bell'effetto.

Un problema, pero', e' che se il test (quello con tante asserzioni) fallisce, ci viene fatto vedere il fallimento, ma non ci viene indicato precisamente quale asserzione e' fallita.
Questa informazione sarebbe utile ...

