2012-09-26 38 views
0

我有这个文本加载器类,我正在尝试编写测试。和它的一个方法确实有CancelEventArgs一个的RaiseEvent解析作为参数,所以这样的事情:如何处理通过Raised Events解析的参数/参数?

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并相应地执行操作。

我的问题是,因为我只测试了Loader类(而不是UI),我该如何操作cancelEvent后引发该事件,这样我可以测试时cancelEvent.CancelTrue然后,当它是False。谢谢。

我会嘲笑UI类吗?

+0

哪个测试框架? NUnit的? MSTest的?哪个模拟框架? –

+0

@StevenDoggart NUnit –

回答

1

我的解决方案是在测试方法中添加一个事件处理程序,以便在引发事件时,测试方法将创建一个CancelEventAgrs并将其取消设置为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