Domanda

Di recente, ho iniziato a lavorare su Email2SMS caratteristica nel nostro prodotto. Quando sono entrato il progetto di questa componente ha avuto la copertura del codice zero unità di test. codice legacy.

Da quando ho iniziato a lavorare su di esso, ero utilizzando l'approccio di test-first. Ma la qualità del codice è stata molto bassa. E 'stato molto difficile da dividere e prove di piccoli pezzi di unità di test, così ho deciso di scrivere test di integrazione.

C'è script php, che accetta alcune informazioni messaggio, la ricerca per l'utente nel DB e salvare alcune informazioni se tutto è OK.

$last_line = system('php emailtosms.php -file=unicode_message.txt ', $retval);

$this->assertStringExistsInLogFile('Email to SMS message was not sent');

È brutto o no? Come si risolvere questo problema?

È stato utile?

Soluzione

Non è così buono.

Prova ad un livello inferiore, avendo lo script emailtosms.php come un semplice involucro che elabora i argomenti della riga di comando, e poi passare via in classe più verificabili. A seconda della fase finale, si potrebbe scrivere unit test a fare quasi tutti, ma l'invio finale (forse prendere in giro il passo finale che in realtà lo invia, e solo memorizzarlo in una variabile, quindi verificare che hai qualcosa di valido c'è).

L'integrazione finale, corre l'end-to-end di classe pieno, e verificare la sua uscita, guardando il registro finale - o un po 'di livello superiore, quello che sarebbe stato messo in per accedere

.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top