Question

Récemment, j'ai commencé à travailler sur Email2SMS fonctionnalité dans notre produit. Lorsque je me suis joint au projet de cette composante avait zéro couverture de code par tests unitaires. Code Legacy.

Depuis que j'ai commencé à travailler là-dessus, j'utilisais test première approche. Mais la qualité du code est très faible. Il était très difficile de le diviser et les tests par petits morceaux tests unitaires, alors j'ai décidé d'écrire test d'intégration.

Il y a script php, qui accepte quelques informations de message, recherchez utilisateur dans DB et enregistrer quelques informations si tout est OK.

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

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

Est-il mauvais ou non? Comment voulez-vous résoudre ce problème?

Était-ce utile?

La solution

Pas si bien.

test à un niveau inférieur, en ayant le script emailtosms.php comme un wrapper simple qui traite les arguments en ligne de commande, puis passer à la classe de plus testable. Selon la dernière étape, vous pouvez écrire des tests unitaires pour faire presque tous, mais l'envoi final (moqueront peut-être la dernière étape qui envoie réellement, et juste stocker à une variable, vous vérifiez avez quelque chose valide).

L'intégration finale, court le bout en bout pleine classe, et vérifiez sa sortie, en regardant le journal final - ou un peu plus haut niveau, ce qui serait mis en log à

.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top