単体テストのアサートでは、リテラル値と式のどちらを好みますか? この小さな例は、私の言いたいことを示しています - コメントに注意してください:
[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, xmlSample.@id);
}
private var xmlSample : XML =
<slideshow id="1">
<someOtherTags />
</slideshow>;
この式の良いところは、XML サンプルが変更されても単体テストが壊れないことです。一方、私は基本的に、好きではない単体テストで SlideshowConverter の 1 つの側面の実装を直接提供しました (テストは、実装ではなく意図をテストする必要があります)。また、式を使用したテストではプログラミング エラーが発生しやすくなることも想像できます (たとえば、テスト メソッドの E4X 式を間違えた可能性があります)。
どのようなアプローチを好みますか? 通常、実際のプロジェクトでより重要な利点は何ですか?