En gros, c'est du code qu'on développe pour tester le bon fonctionnement de parties d'une application. Par exemple vérifier qu'un webservices retourne les données correctement, permet de vérifier que des méthodes de calculs retournent ce qu'on attend d'elle, vérifier aussi des temps de réponses etc...Svp: pourriez-vous m'expliquez simplement ce que sont les test unitaires (principe de fonctionnement) ?
Tout est ok, j'ai bien compris, cependant je me pose encore quelques questions:En gros, c'est du code qu'on développe pour tester le bon fonctionnement de parties d'une application. Par exemple vérifier qu'un web services retourne les données correctement, permet de vérifier que des méthodes de calculs retournent ce qu'on attend d'elle, vérifier aussi des temps de réponses etc...
Si tu juges que tu as besoin des tests unitaires pour avoir un code de qualité tu le mets en place. C'est un outil, c'est comme choisir entre utiliser un IDE ou bien un éditeur de texte. Si l'IDE ne t'apporte rien de plus qu'un éditeur de texte...A partir de quoi décide ton de mettre ce système en place ?
Oui, sinon cela n'a aucun intérêt ! Et c'est l'un des points contraignants des tests unitaires, il faut les maintenir à jour pour qu'ils servent, sinon autant ne pas en faire.Est-ce que ce système est appliqué a la totalité des fonction ?
Si tu juges que tu perds ton temps à les utiliser c'est que cela ne t'est pas utile.Quand on travail toujours seul: est-ce vraiment utile ?
1/ Quand une application commence à avoir beaucoup de fonctionnalités, ou affiche une certaine complexité, que ça nécessite une certaine maintenance, qu'on souhaite maintenir l'application, ou simplement qu'on veut être sure que l'application répond parfaitement aux specsTout est ok, j'ai bien compris, cependant je me pose encore quelques questions:En gros, c'est du code qu'on développe pour tester le bon fonctionnement de parties d'une application. Par exemple vérifier qu'un web services retourne les données correctement, permet de vérifier que des méthodes de calculs retournent ce qu'on attend d'elle, vérifier aussi des temps de réponses etc...
A partir de quoi décide ton de mettre ce système en place ?
Est-ce que ce système est appliqué a la totalité des fonction ?
Quand on travail toujours seul: est-ce vraiment utile ?
Oui, au passage certains types de logiciels sont très complexes à tester unitairement, auquel cas on préfère le peer-reviewing. Mais ce n'est pas le cas en web.2 / Non, faire des TU pour faire des TU n'a aucun sens. Il est plus important d'appliquer les TU aux points sensibles que de tout recouvrir. ça doit être fait sur quelque chose de pertinent.
EDIT : je vois que nous ne sommes pas d'accord sur le deuxième point avec xtg. Mais il est vrai qu'après tout dépend de la philosophie adopté par l'équipe de devs' ou le dév
public function testRecupDateFile ()
{
// Preparation
$file = 'CDR-ARD-ISBC_20120918.csv';
$oFichier = new Admin_Model_Table_Fichiers();
// Appel
$dateTrue = '2012-09-18'; // Date correcte
$dateFalse = '2012/09/17'; // Date incorrecte
$dateToVerif = $oFichier->_recupDateFile($file);
// Vérification
$this->assertEquals($dateTrue, $dateToVerif);
$this->assertNotEquals($dateFalse, $dateToVerif);
}
Elle n'a rien d'extraordinaireOk, peux tu me montrer la fonction en question ?
private function _recupDateFile ($file)
{
$dateFile = null;
if (preg_match('/([a-zA-Z_-]+)([\d]+)/', $file, $match)) {
$dateFile = DateTime::createFromFormat('Ymd', $match[2]);
return $dateFile->format('Y-m-d');
}
}
Donc tu fais des tests aussi sur des fonctions simple, je pense comprendre qu'il est impossible de deviner quels fonctions seront modifier dans le futur et qu'il est préférable de prévoir des tests sur la totalités des fonctions comme le préconise xTG ?Elle n'a rien d'extraordinaire:
Toutes.Autre chose que je voudrais savoir, les tests sont fait sur toutes les fonctions ou seulement celles des classes ?
Le mieux reste de trouver un consensus entre ce qu'il préconise et ce que je préconise. Bien sur que tu peux tout tester avec les TU mais mieux vaut tester d'abord tout ce qui est sensible et pertinant. Mais plus les tests couvriront le maximum de code, plus l'application sera solideDonc tu fais des tests aussi sur des fonctions simple, je pense comprendre qu'il est impossible de deviner quels fonctions seront modifier dans le futur et qu'il est préférable de prévoir des tests sur la totalités des fonctions comme le préconise xTG ?Elle n'a rien d'extraordinaire:
Autre chose que je voudrais savoir, les tests sont fait sur toutes les fonctions ou seulement celles des classes ?