0

テストを作成しようとしているこのテキストローダークラスがあります。そして、そのメソッドの 1 つは、引数として解析された 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クラスをモックする必要がありますか?

4

1 に答える 1

1

My solution to this was to add an event handler in the test method, so that when the event is raised, the test method will create a CancelEventAgrs and set its Cancel to 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 に答える