假设我有一个方法A.Do(Arg arg)分配 arg (类Arg)的一些属性,假设它设置了arg.Prop1 =“done”。我正在测试一个无效方法B.Do(void):
public class B
{
public void Do()
{
var arg = InitArg();
A.Do(arg)
...
}
}
我把A级嘲笑为新Mock<带有CodeBase = true的>()。那么如何验证arg.Prop1 ==“完成”?
答案 0 :(得分:2)
您应该对A类进行单元测试,以验证您的传递中的arg是否被正确操作,而不是尝试通过B.Do()测试此行为。
答案 1 :(得分:1)
用给定的例子,你不能。 arg
对方法B.Do()是私有的,因此它对外界不可见,因此您无法验证其任何属性。
答案 2 :(得分:0)
无论如何,为MoQ添加此类功能以在方法调用之后验证参数似乎是合理的。因为,具有MoQ验证方法调用次数的功能在逻辑上具有参数验证功能。