我有这个文本加载器类,我正在尝试编写测试。其中一个方法做了一个带有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
设置为True
或False
。然后上面的方法检查cancelEvent
并相应地执行操作。
我的问题是,因为我只测试加载器类(而不是UI),所以如何在引发事件后操纵cancelEvent
以便我可以测试cancelEvent.Cancel
是True
,然后是False
。谢谢。
我会模拟UI类吗?
答案 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