Supposons que vous avez cette coquille d'une classe:C#: Comment écrire des cas de test pour les constructeurs et les surcharges constructeurs?
public class Number
{
private int value;
public Number()
: this(0) {}
public Number(int initialValue)
: this(initialValue, 0, 100) {}
public Number(int initialValue, int minimumValue, int maximumValue)
{
if (minimumValue > maximumValue)
throw new ArgumentException("Minimum cannot be greater than maximum", "minimumValue");
MinValue = minimumValue;
MaxValue = maximumValue;
Value = initialValue;
}
public int MinValue { get; private set; }
public int MaxValue { get; private set; }
public int Value
{
get { return value; }
set
{
if (value < MinValue)
value = MinValue;
if (value > MaxValue)
value = MaxValue;
this.value = value;
}
}
}
Voulez-vous écrire des tests pour cette classe et si oui, comment voulez-vous les écrire? Je pense en particulier aux constructeurs. Comme, auriez-vous un test qui a créé un Number
en utilisant le constructeur par défaut et en vérifiant que la valeur était 0, minvalue était 0 et maxvalue était 100? Ou serait-ce sur les spécifications? Ou est-ce vraiment pas, puisque d'autres pourraient dépendre que les valeurs par défaut n'ont pas changé par accident? Souhaitez-vous écrire un test pour chaque constructeur, ou juste celui par défaut, puisque vous savez qu'il enchaîne tous les autres.
Je suppose que la classe est également appelé NumberParameter, de sorte que vous avez 3 surcharges de constructeur (ressemble à une faute de frappe)? – Mathias
Oh, typo: p va réparer! – Svish
Pour tester, vous ne voulez pas de valeurs codées en dur qui nécessitent une connaissance omnisciente du système. Faites vos valeurs par défaut readonly statique de paramètres par défaut contre. –