【问题标题】:Unable to mock ref object[] using MOQ无法使用 MOQ 模拟 ref 对象 []
【发布时间】:2016-02-04 11:10:29
【问题描述】:

我正在尝试使用 MOQ 模拟方法调用。方法接受一个字符串,两个对象引用数组参数。

方法定义:

bool method1(string string1, ref object[] objectArray, ref object[] objectArray);

起订量设置:

var sampleArray = new object[1] { "test" };

interfaceObject.Setup(m => m.method1(It.IsAny<string>(), ref sampleArray, ref sampleArray)).Returns(true);

当我尝试将 ref 对象作为参数模拟时,它的工作原理和我得到了所需的输出。

但是当我试图模拟 ref 数组对象作为参数时,它不起作用,也没有抛出任何错误。

谁能帮我理解模拟 ref 数组对象参数的问题。

【问题讨论】:

  • “它不工作”并没有给我们任何关于你观察到的迹象。如果您提供minimal reproducible example,那将非常有帮助。
  • 您的问题是Setup 不匹配,以便您获得另一个返回值(false 是松散模拟的默认值)还是出现错误说不存在设置(严格模拟) ?

标签: c# unit-testing model-view-controller mocking moq


【解决方案1】:

试试Typemock Isolator。这是一个非常强大的单元测试框架。它们对 ref 和 out 参数没有任何限制。甚至没有谈论你可以用它伪造的不仅仅是公共虚拟方法的事实。

【讨论】:

    【解决方案2】:

    几年前,我遇到了一个类似的问题,发现 Moq 在设置带有 ref 和 out 参数的方法时存在一些限制。那时我不得不改用 RhinoMocks。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-09
      • 2010-11-12
      • 1970-01-01
      相关资源
      最近更新 更多