无法使用MOQ模拟ref对象[]

时间:2016-02-04 11:10:30

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

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

方法定义:

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

MOQ设置:

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

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

当我尝试将ref对象模拟为参数时,我正在获得所需的输出。

但是当我试图将ref数组对象作为参数进行模拟时,它不起作用,并且它不会抛出任何错误。

有人可以帮我理解模拟ref数组对象参数的问题。

2 个答案:

答案 0 :(得分:1)

试试Typemock Isolator。它是一个非常强大的单元测试框架。他们对ref和para params没有任何限制。甚至没有谈到这样一个事实,即你可以伪造更多的公共虚拟方法。

答案 1 :(得分:0)

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