Je regardais Rob Connerys de webémissions sur le MVCStoreFront Application, et j'ai remarqué qu'il était de tests unitaires, même les choses les plus banales, des choses comme:
public Decimal DiscountPrice
{
get
{
return this.Price - this.Discount;
}
}
Aurait un test comme:
[TestMethod]
public void Test_DiscountPrice
{
Product p = new Product();
p.Price = 100;
p.Discount = 20;
Assert.IsEqual(p.DiscountPrice,80);
}
Alors, je suis pour les tests unitaires, je me demande parfois si cette forme de test en premier développement est vraiment bénéfique, par exemple, dans un processus réel, vous avez 3 ou 4 couches au-dessus de votre code (Demande d'Entreprise, les Exigences du Document, du Document d'Architecture), où le réel défini règle d'entreprise (Réduction de Prix est le Prix d'Escompte) pourrait être misdefined.
Si c'est le cas, votre appareil de test ne signifie rien pour vous.
En outre, votre test unitaire est un autre point de défaillance:
[TestMethod]
public void Test_DiscountPrice
{
Product p = new Product();
p.Price = 100;
p.Discount = 20;
Assert.IsEqual(p.DiscountPrice,90);
}
Maintenant, le test est biaisé. Evidemment, dans un simple test, c'est pas une grosse affaire, mais dire que nous avons test d'un complexe d'affaires de la règle. Que gagnons-nous ici?
Avance rapide de deux ans dans l'application de la vie, lors de l'entretien les développeurs sont à l'entretenir. Maintenant, l'entreprise change son de la règle, et le test de pauses à nouveau, certains recrue développeur fixe alors le test de manière incorrecte...nous avons maintenant un autre point de défaillance.
Je ne vois plus de points possibles de l'échec, sans réelle bénéfique de retour, si la remise des prix est erroné, l'équipe de test trouverez toujours la question, comment avez-tests unitaires enregistrer n'importe quel travail?
Ce qui me manque ici? Apprends-moi à aimer TDD, comme je vais avoir un moment difficile de l'accepter comme utile jusqu'à présent. Je veux trop, parce que je veux rester progressive, mais il n'a tout simplement pas de sens pour moi.
EDIT: UN couple de personnes de garder mentionné que le test de dépistage permet de maintenir la spec. Il a été mon expérience que la spécification a été de mal que de bien, le plus souvent, mais peut-être que je suis condamnée à travailler dans une entreprise où les spécifications sont écrits par des gens qui ne devraient pas être la rédaction de spécifications.