Préférez-vous des valeurs ou des expressions littérales dans vos affirmations dans vos tests unitaires? Ce petit exemple montre ce que je veux dire - s'il vous plaît prêter attention aux commentaires:Les littéraux ou les expressions dans les tests unitaires s'affirment?
[Test]
public function fromXML_works() : void {
var slideshow : Slideshow = SlideshowConverter.fromXML(xmlSample);
// do you prefer literal value "1":
assertEquals(slideshow.id, "1");
// ... or an expression like this:
assertEquals(slideshow.id, [email protected]);
}
private var xmlSample : XML =
<slideshow id="1">
<someOtherTags />
</slideshow>;
La bonne chose à propos de l'expression est que lorsque l'échantillon change XML, ne cassera pas le test unitaire. D'autre part, j'ai fondamentalement fourni une implémentation d'un aspect de mon SlideshowConverter directement dans mon test unitaire que je n'aime pas (le test devrait tester l'intention, pas l'implémentation). Je peux aussi imaginer que les tests utilisant des expressions seront plus sujets aux erreurs de programmation (j'aurais pu, par exemple, faire une erreur dans mon expression E4X dans ma méthode de test).
Quelle approche préférez-vous? Quel avantage est généralement plus important sur les projets du monde réel?