如何操作通过Raised Events传递的参数/参数?

时间:2012-09-26 10:37:44

标签: vb.net unit-testing events

我有这个文本加载器类,我正在尝试编写测试。其中一个方法做了一个带有CancelEventArgs作为参数解析的RaiseEvent,所以像这样:

Private Sub FireThisEvent()
    cancelEvent created here
    RaiseEvent HelloWorld(cancelEvent)

    If cancelEvent.Cancel Then
        'do smthg
    End If
End Sub

HelloWorld事件的处理程序是我的UI类,它为用户创建弹出窗口 决定是或否,然后将cancelEvent.Cancel设置为TrueFalse。然后上面的方法检查cancelEvent并相应地执行操作。

我的问题是,因为我只测试加载器类(而不是UI),所以如何在引发事件后操纵cancelEvent以便我可以测试cancelEvent.CancelTrue,然后是False。谢谢。

我会模拟UI类吗?

1 个答案:

答案 0 :(得分:1)

我的解决方法是在测试方法中添加一个事件处理程序,这样当引发事件时,测试方法将创建一个CancelEventAgrs并将其Cancel设置为True / False。

Public Sub TestingMethod()
        Dim txt As TextLoader = Nothing
        AddHandler TextLoader.LoadingDoneEvent,
            (Sub(e As ComponentModel.CancelEventArgs)
                 e.Cancel = True
             End Sub)

        txt = New TextLoader()
        txt.FireThisEvent()
End Sub