0

所以我目前正在为我几周前实现的一个类创建一个单元测试。我将首先向您展示我正在学习的课程的特定部分。

public void PostEvent(eVtCompId inSenderComponentId, eVtEvtId inEventId, long inEventReference, IF_SerializableData inEventData)
        {
            if(mEventMap.ContainsKey(inEventId))
            {
                mEventMap[inEventId](inSenderComponentId, inEventReference, inEventData);
            }
        }

对于这种方法,我有 4 个参数。第一,一个枚举;2、另一个枚举;第三,长;4、界面。

假设我已经声明/编码了该方法工作所需的所有正确枚举和接口。下一位是单元测试代码的一部分。

target.PostEvent(eVtCompId.MainWindowsCommDevice, eVtEvtId.OnLanguageChange, 3, );

如您所见,对于最后一个参数,我还没有任何东西,因为我不知道应该为接口设置什么值。有任何想法吗?如果您认为需要更多信息,请随时提出问题,我很乐意尽我所能解决问题。

4

1 回答 1

2

使用模拟框架(RhinoMock、Moq、...)并模拟界面。起订量样品如下:

var serializable = new Mock<IF_SerializableData>();
target.PostEvent(..., serializable.Object);

或者您可以在测试中手动实现接口,即在本地类上。

class MySerializable : IF_SerializableData {...}

target.PostEvent(..., new MySerializable());
于 2012-12-01T02:21:11.883 回答