首页 > 解决方案 > 当类型转换为实际类类型时,将模拟接口类型转换为 null

问题描述

我有一个类TestManager及其接口ITestManager

对于上面我在测试用例中进行了下面的模拟**

var lookupManager = new Mock<ITestManager>();
lookupManager.SetupGet(p => p.someMethod()).Returns("SomeDummyValue");

//registered this in the container with a mocked object
unitycontainer.RegisterInstance<ILookupAggregationManager>(lookupManager.Object);

//calling the method to be tested
targetObject.ExecuteTestCaseMethod();

//...

由于以下行,在实际代码模拟中不起作用,hereas关键字正在将模拟类型转换为实际类TestManager。这导致空值。

即使在将代理类型转换为实际类型之后,是否可以从上面的模拟中获取类型?

public void ExecuteTestCaseMethod()
{
    ITestManager lookupManager = this.container.Resolve<ITestManager>() as TestManager;    
}

标签: c#mockingmoqunity-container

解决方案


推荐阅读