Типизация интерфейса Mocked приводит к нулю, если тип приведен к фактическому типу класса - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть класс 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();

//...

В реальном коде пересмешка не работает из-за строки ниже, здесь ключевое слово as преобразует макетированный тип в фактический класс TestManager. Это приводит к нулевому значению.

Можно ли получить шутку над типом сверху, даже после типизации прокси-сервера к фактическому типу?

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