无法访问模拟的底层对象[重复]

问题描述 投票:-6回答:1

这个问题在这里已有答案:

我在使用Moq的单元测试中有以下代码:

Mock<BorderedCanvas> canvas2 = new Mock<BorderedCanvas>();
canvas2.Object.Children.Add(canvas1);
canvas1.RaiseEvent(someEvent);
canvas2.Verify(c => c.RaiseEvent(It.IsAny<RoutedEventArgs>()), Times.Once);

代码在第二行失败,显示以下消息:

System.NullReferenceException : Object reference not set to an instance of an object.

知道为什么我无法访问模拟canvas2的底层对象吗?

c# wpf moq
1个回答
1
投票

关于模拟对象的所有内容都将返回默认值,除非您已告知它的行为。由于您尚未告诉Children属性应如何表现,因此它返回该类型的默认值,即null。因此,当您尝试在空对象上调用“添加”时,NullReferenceException。 (哇,多次评论殴打它,上面......)

© www.soinside.com 2019 - 2024. All rights reserved.