2009-12-19 98 views
0

说我有一个方法A.Do(Arg arg),它分配arg(class Arg)的一些属性,假设它设置arg.Prop1 =“done”。而且我测试无效方法B.Do(无效):如何在方法调用后验证方法参数?

public class B 
{ 
    public void Do() 
    { 
    var arg = InitArg(); 
    A.Do(arg) 
    ... 
    } 
} 

和我嘲笑A级作为新模拟< A>()的基本代码=真。那么如何验证arg.Prop1 ==“完成”?

回答

1

用给出的例子,你不能。 arg对B.Do()方法是私有的,因此它对外界不可见,所以你不能验证它的任何属性。

+0

谢谢。虽然我不知道MoQ的“内部”是什么,但它仍然让我确认A.Do被调用了多少次。所以我想知道它是否可以让我验证这些论点 - 但我想不会......可惜 – David 2009-12-19 17:52:38

2

您应该对A类进行单元测试,验证您的传递参数是否正确,而不是尝试通过B.Do()测试此行为。

0

无论如何,MoQ添加这样的功能来验证方法调用后的参数似乎是非常合理的。因为具有MoQ验证方法调用次数的功能在逻辑上具有参数验证功能。