Moq验证链接

时间:2012-02-28 02:32:33

标签: c# .net moq

如果我的依赖项IObjectA包含PropertyA类型为IObjectB的{​​{1}}公共方法Foo()

为了调用IObjectB Foo()可以完成其中任何一个,这是正确的吗?

Verify()

“B”似乎更正确,但没有验证和反驳我的调试“一步一步”,“A”然而得到正确的结果。可以使用objectA查询其属性和用于调用的属性,即使它是一个模拟类型吗?

1 个答案:

答案 0 :(得分:4)

为什么你认为B似乎更正确?

示例A说内部对象A检查PropertyA有foo调用它。

在这个例子中,

objectA和objectB无论如何都没有绑在一起。因此,例子B在其当前形式中似乎具有误导性,因为它试图表明存在某种关系。

现在,如果您使用setup将objectB分配给objectA,那么这两个示例都应该有效(因为您告诉Moq objectA如何与objectB相关)。执行此设置可创建您要验证的关系。

有些事情:

objectA.Setup(x => x.PropertyA).Returns(objectB)

这基本上说“当调用PropertyA时,给我回来对象B.