Bevorzugen Sie literale Werte oder Ausdrücke in Ihren Asserts in Ihren Komponententests? Dieses kleine Beispiel zeigt, was ich meine - bitte beachten Sie die Kommentare:Literale oder Ausdrücke in Unit Test behauptet?
[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>;
Die schöne an dem Ausdruck ist, dass, wenn die XML-Probe ändert, wird der Unit-Test nicht brechen. Auf der anderen Seite habe ich im Grunde eine Implementierung von einem Aspekt meines SlideshowConverter direkt in meinem Komponententest zur Verfügung gestellt, die ich nicht mag (der Test sollte Absicht, nicht Implementierung testen). Ich kann mir auch vorstellen, dass Tests, die Ausdrücke verwenden, anfälliger für Programmierfehler sind (ich könnte zum Beispiel einen Fehler in meinem E4X-Ausdruck in meiner Testmethode gemacht haben).
Welchen Ansatz bevorzugen Sie? Welcher Vorteil ist bei realen Projekten in der Regel wichtiger?