我们正在使用 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<> 模拟对象。