在填充没有ref关键字的数组参数时遇到问题。
签名:
int ReceiveData(ref byte[] data)
这有效:
byte[] dataParameter = new byte[8];
byte[] testData = new byte[] { 1, 2, 3, 4 };
this.mockObject.Stub(t => t.ReceiveData(ref dataParameter)).OutRef(testData).Return(4);
调用“ReceiveData”后,“data”参数的值为{1,2,3,4}。 如何填写此签名的数据参数:
int ReceiveData(byte[] data)
OutRef()不适用于此。任何的想法? 感谢...
答案 0 :(得分:0)
我遇到了类似的问题,并使用'Callback'方法找到了我的解决方案。在我的例子中,输入缓冲区参数没有被声明为'ref',所以可能不适合你,但我认为它应该可行。
例如;
mockObject.Expect(x => x.ReceiveData(Arg<byte[]>.Is.NotNull)).Callback((byte[] buffer) =>
{
Array.Copy(outBytes, 0, buffer, 0, outBytes.Length);
return true;
}).Return(10); // return some number of bytes received, and set the bytes in the callback