Autofac.Extras.Moq.AutoMock を使用しています。今、私は Lazy<> を使用してコンストラクターの依存関係を持っています
public MyService(Lazy<IDependency> myLazyDependency) {...}
テストMyService
するには、 をモックする必要がありLazy<Dependency>
ます。
私はこれを試しています
[ClassInitialize]
public static void Init(TestContext context)
{
autoMock = AutoMock.GetLoose();
}
[TestInitialize]
public void MyTestInitialize()
{
var myDepMock = autoMock.Mock<Lazy<IDependency>>(); // <-- throws exception
}
これは、テスト ランナーによって返される例外です。
初期化メソッド Tests.MyServiceTests.MyTestInitialize が例外をスローしました。System.InvalidCastException: System.InvalidCastException: タイプ 'System.Lazy 1[IDependency]' to type 'Moq.IMocked
1[System.Lazy`1[IDependency]]' のオブジェクトをキャストできません..
では、automock を使用して Lazy<> モック オブジェクトを渡すにはどうすればよいでしょうか。