単体テストを DRY しようとして、AutoFixture を IoC コンテナーとして使用して、テスト対象のシステム (SUT) をインスタンス化しようとしています。この特定Controller
のケースでは ASP.NET MVC です。したがって、AutoFixture をカスタマイズして、自動プロパティのないコントローラーを作成したいと考えています。
のカスタマイズを追加しようとしましたControllerBase
が、 のサブクラスでは機能しないようですControllerBase
。
fixture.Customize<ControllerBase>(c => c.OmitAutoProperties());
書きたいテストの例を次に示します。
[Theory, AutoFixtureData]
public void ControllerTest(AccountController controller) {
Assert.Equal(default(UrlHelper), controller.Url);
}
当然のことながら、プロジェクト内の特定のコントローラーごとに 1 つのカスタマイズを手動で追加すれば機能しますが、誰がそれをしたいでしょうか? より良い方法はありますか?