方法调用后如何验证方法参数?

时间:2009-12-19 17:41:45

标签: c# mocking moq

假设我有一个方法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 ==“完成”?

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

无论如何,为MoQ添加此类功能以在方法调用之后验证参数似乎是合理的。因为,具有MoQ验证方法调用次数的功能在逻辑上具有参数验证功能。

相关问题