Я пытаюсь написать UT и застрял в строке ниже.
Код продукта (который создает проблему):
var view = RegionManager.Regions["Dummy"].ActiveViews.First() as IView;
Unit Test (Соответствующий код):
var regionManagerMock = new Mock<IRegionManager>();
var viewCollMock = new Mock<IViewsCollection>();
regionManagerMock.Setup(c => c.Regions["Dummy"].ActiveViews).Returns(viewCollMock.Object);
При выполнении этого UT я получаю исключение ниже:
threw an exception of type 'System.NullReferenceException'
Data: {System.Collections.ListDictionaryInternal}
HResult: -2147467261
HelpLink: null
InnerException: null
Message: "Object reference not set to an instance of an object."
Source: "System.Core"
StackTrace: " at System.Linq.Enumerable.First[TSource](IEnumerable`1 source)"
TargetSite: {TSource First[TSource](System.Collections.Generic.IEnumerable`1[TSource])}
Однако я вижу значение этого
RegionManager.Regions["Dummy"].ActiveViews
во время выполнения:
{Mock<Prism.Regions.IViewsCollection:670c>.Object}
Mock: {Mock<Prism.Regions.IViewsCollection:670c>}
Mock (Castle.Proxies.IViewsCollectionProxy): {Mock<Prism.Regions.IViewsCollection:670c>}
__interceptors: {Castle.DynamicProxy.IInterceptor[1]}
__target: null
Results View: Expanding the Results View will enumerate the IEnumerable