我之前问过一个关于如何在测试方法时设置接口值的问题 。我已经成功地将 Moq 框架实施到我的项目中,并且测试运行良好。
这是我推荐的示例代码:
public void PostEvent(
eVtCompId inSenderComponentId,
eVtEvtId inEventId,
long inEventReference,
IF_SerializableData inEventData)
{
if(mEventMap.ContainsKey(inEventId))
{
mEventMap[inEventId](inSenderComponentId, inEventReference, inEventData);
}
}
这里我有 4 个参数:第一个:一个枚举,第二个:另一个枚举,第三个:long,第四个:一个接口。但是,我误认为第四个参数(接口)不应该是接口,而是reference
接口。
所以它应该是这样的:
public void PostEvent(
eVtCompId inSenderComponentId,
eVtEvtId inEventId,
long inEventReference,
ref IF_SerializableData inEventData)
给我的示例起订量测试代码(就是这个)......
var serializable = new Mock<IF_SerializableData>();
target.PostEvent(..., serializable.Object);
...不起作用。我已经尝试过ref serializable.Object
,但它仍然不起作用,因为我收到一个错误,指出 ref 参数期望引用一个变量,而不是一个对象。
关于如何正确测试它的任何提示或示例?