ほんの一例です。プロパティの設定に反応するクラスがあります。より具体的には、すべてが設定されると、アセンブリがロードされる3つのプロパティがあります。その後、イベントがトリガーされます。
この動作の単体テストは次のようになります。
bool assemblyLoaded = false;
loader.AssemblyLoaded += () => assemblyLoaded = true;
loader.Type = "someType";
Assert.IsFalse(assemblyLoaded); // not loaded, only one property was set
これにより、プロパティごとに1つずつ、合計3つの単体テストが実行されます。したがって、コードの複製を回避するために、支援方法(以下を参照)を使用してテストを抽象化したいと思います。
private void Testfoobar(Action setProperty)
{
bool assemblyLoaded = false;
loader.AssemblyLoaded += (sender, args) => assemblyLoaded = true;
setProperty();
}
残念ながら、プロパティの割り当てをアクションにすることはできません。
では、どういうわけか、割り当てをアクションに「変換」できるでしょうか。それとも、コードを抽象化する別の方法がありますか?