これら 3 つのテストは、異なる静的関数を使用して StartInfo インスタンスを作成する点を除いて、同じです。私はこのパターンをテストコード全体で使用しています。[TestCase] を使用するか、ボイラープレート コードを削減するその他の方法でこれを単純化できるようにしたいと考えています。私の知る限りでは、デリゲートを [TestCase] 引数として使用することは許可されていません。ここにいる人々が、以下のコードをより簡潔にする方法について創造的なアイデアを持っていることを願っています。
[Test]
public void ResponseHeadersWorkinPlatform1()
{
DoResponseHeadersWorkTest(Platform1StartInfo.CreateOneRunning);
}
[Test]
public void ResponseHeadersWorkinPlatform2()
{
DoResponseHeadersWorkTest(Platform2StartInfo.CreateOneRunning);
}
[Test]
public void ResponseHeadersWorkinPlatform3()
{
DoResponseHeadersWorkTest(Platform3StartInfo.CreateOneRunning);
}
void DoResponseHeadersWorkTest(Func<ScriptResource,StartInfo> startInfoCreator)
{
ScriptResource sr = ScriptResource.Default;
var process = startInfoCreator(sr).Start();
//assert some things here
}