私はECMAScriptの実装に取り組んでおり、現在プロジェクトの磨き上げに取り組んでいます。その一環として、私は次のようなテストを作成しています。
[TestMethod]
public void ArrayReduceTest()
{
var engine = new Engine();
var request = new ExecScriptRequest(@"
var a = [1, 2, 3, 4, 5];
a.reduce(function(p, c, i, o) {
return p + c;
});
");
var response = (ExecScriptResponse)engine.PostWithReply(request);
Assert.AreEqual((double)response.Data, 15D);
}
問題は、このテストおよび同様のテストには非常に多くの障害点があり、ほとんど価値がないように思われることです。モジュール間の結合を減らすために、私の努力を費やしたほうがよいようです。真の単体テストを作成するには、次のようなものを想定する必要があります。
[TestMethod]
public void CommentTest()
{
const string toParse = "/*First Line\r\nSecond Line*/";
var analyzer = new LexicalAnalyzer(toParse);
{
Assert.IsInstanceOfType(analyzer.Next(), typeof(MultiLineComment));
Assert.AreEqual(analyzer.Current.Value, "First Line\r\nSecond Line");
}
}
これを行うには、何千ものテストを作成する必要がありますが、これも価値がないようです。