0

我有这个文本加载器类,我正在尝试为其编写测试。它的一个方法执行一个 RaiseEvent ,并将 CancelEventArgs 作为参数解析,所以是这样的:

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

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

事件的处理程序HelloWorld是我的 UI 类,它会弹出一个让用户决定是或否的弹出窗口,然后设置cancelEvent.CancelTrueor 或False。然后上述方法检查cancelEvent并相应地执行操作。

我的问题是,因为我只测试加载器类(而不是 UI),所以在引发事件之后如何操作,cancelEvent以便我可以测试 when cancelEvent.CancelisTrue和 then ,when it is False。谢谢你。

我会模拟 UI 类吗?

4

1 回答 1

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
于 2012-09-28T08:17:53.740 回答