2016-02-04 84 views
-1

我想模擬使用起訂量的方法調用。方法需要一個字符串,兩個對象參考數組參數。無法使用MOQ模擬引用對象[]使用起訂量

方法定義:

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); 

當我嘗試嘲笑裁判對象作爲參數的工作和我得到所需的輸出。

但是,當我試圖模擬參考數組對象作爲參數它不工作,也沒有拋出任何錯誤。

有人可以幫我理解與嘲笑參考數組對象參數的問題。

+1

「它不工作」並沒有給我們任何指示你觀察到的東西。如果你想提供[mcve],那真的很有幫助。 –

+0

測試的其餘部分是什麼樣的?你如何使用'sampleArray'? –

+0

你的問題是''安裝程序'不匹配,所以你得到另一個返回值('假'是散裝模擬的默認值)或得到一個錯誤,說沒有設置存在(嚴格的模擬)? –

回答

0

幾年前我遇到了類似的問題,發現Moq在使用ref和out參數設置方法時有一些限制。然後我不得不切換到RhinoMocks。

1

嘗試Typemock Isolator。這是非常強大的單元測試框架。他們對ref和params沒有任何限制。甚至沒有談到這樣的事實,即你可以用它虛構更多的公共虛擬方法。