C# 模拟COM+;使用最小起订量的包装器失败了
我有一个COM+接口的包装器类,我需要模拟它 这是套接字接口上该方法的签名C# 模拟COM+;使用最小起订量的包装器失败了,c#,unit-testing,lambda,moq,C#,Unit Testing,Lambda,Moq,我有一个COM+接口的包装器类,我需要模拟它 这是套接字接口上该方法的签名 int MakeRequest(object ServiceId, object Host, object Port, object Request, ref object pResponse); 我用Moq来模拟它,就像这样 object pResponse = String.Empty; var socket = new Mock<Socket>(); socket.Se
int MakeRequest(object ServiceId, object Host, object Port,
object Request, ref object pResponse);
我用Moq来模拟它,就像这样
object pResponse = String.Empty;
var socket = new Mock<Socket>();
socket.Setup(x => x.MakeRequest(It.IsAny<int>(), It.IsAny<string>(),
It.IsAny<int>(), It.IsAny<string>(),
ref pResponse))
.Returns((int i, string s, int ii, string ss, object o) =>
{
o = "Response";
return 0;
});
我遗漏了什么?这是因为
ref
关键字。看看这些问题。第二个有一些尝试,虽然他们可能不满足你的需要
如果您可以重构以避免使用ref
,请这样做。否则,用手卷起一根短棒
public class StubSocket
{
int MakeRequest(object ServiceId, object Host, object Port, object Request, ref object pResponse)
{
pResonse = "Response";
return 0;
}
}
重构是唯一的出路
public class StubSocket
{
int MakeRequest(object ServiceId, object Host, object Port, object Request, ref object pResponse)
{
pResonse = "Response";
return 0;
}
}