18-02-2012, 08:54 PM
je ne fais pas des TDD mais je développe mes tests automatisés après la première version de mon développement :
dès que je crée une méthode d'un objet, je crée autant de cas tests qu'il y a de couples (entrées , sorties) possibles (bon en théorie, dans certains cas c'est pas vraiment possible)
les tests me servent surtout à la non régression
j'en ai pour le moment 820, y a probablement de la redondance et des "trous" fonctionnels mais j'en suis assez content
cas particulier, j'ai des cas tests concernant des méthodes qui utilisent le hasard
de fait j'ai surchargé une fonction de jet de dés :
normal
surchargé
dès que je crée une méthode d'un objet, je crée autant de cas tests qu'il y a de couples (entrées , sorties) possibles (bon en théorie, dans certains cas c'est pas vraiment possible)
les tests me servent surtout à la non régression
j'en ai pour le moment 820, y a probablement de la redondance et des "trous" fonctionnels mais j'en suis assez content
cas particulier, j'ai des cas tests concernant des méthodes qui utilisent le hasard
de fait j'ai surchargé une fonction de jet de dés :
normal
function Dice($a, $b)
{
return mt_rand ($a, $b);
}
surchargé
function Dice($a, $b)
{
return chance::GetRoll();
}
class chance
{
private static $rolls = array();
private static $cursor = 0;
private static $infinite;
// si infinite = true, alors on boucle sur le tableau des tirages a l infini
public static function SetRolls( $rolls, $infinite = false )
{
if (!is_array($rolls) )
$rolls = array($rolls);
self::$rolls = $rolls;
self::$cursor = 0;
self::$infinite = $infinite;
}
public static function GetRoll()
{
if (self::$cursor >= count(self::$rolls) )
if (self::$infinite)
self::$cursor =0;
else
throw new classError( 1000, array('message' =>'jet de dé non prévu'));
return self::$rolls[self::$cursor ++];
}
}
ainsi lors des tests, je ne laisse pas la place au hasard, je définis avant les appels des méthodes qui utilisent le hasard quel(s) sera(ont) le(s) résultat(s) du dé