2009-06-07 9 views
0

私はMVC用にthis種類の配線を使用しています。コントローラをテストしたいです。これまでのところ、私は2つの方法を見つけました:モックビューのディスパッチイベントまたは私のコントローラーがパブリックメソッドを公開しています。オブジェクトをモックしてイベントを送出する必要がありますか?

ディスパッチイベントは(回答で指摘されているように)見えるようですが、私のビューが単純なモックオブジェクトであれば、どのようにイベントをディスパッチしますか?

答えて

1

あなたのビューがイベントをディスパッチする場合は、モックオブジェクトにもイベントを送信することをお勧めします。モックオブジェクトはインターフェイスをモックするためのもので、ディスパッチされたイベントはそのインターフェイスの一部です(必ずしも十分に文書化されているわけではありません)。また、使用するのと同じ方法でコントローラをテストすることを意味します。

もちろん、あなたのビューが正常にイベントをディスパッチしない場合は、通常はパブリックメソッドを使用していると思います。

+0

しかし、ビューが「ダム」の場合、これらのイベントをどのようにトリガーしますか? – subb

+0

あなたのモックに余計なものを追加することを意味しますが、テストから呼び出す特定のイベントをトリガできるメソッドを持つために行っていきます。 'viewMock.dispatchClickEvent()'または同様のものです。 – workmad3

0

あなたは言語でこの質問にタグを付けていないので、これがうまくいくかどうかわかりませんが、リフレクションの使用と保護された/私の見解では、メソッドが正しく動作することをテストする必要があります。言語がサポートしている場合は、リフレクションを使用してメソッドを呼び出すことでこれを行うことができます。イベントハンドラが正しく設定されていることを確認するには、他のテストが必要です。イベントをディスパッチするコードを作成している場合は、イベントが適切に送出されていることをテストする必要があります。

関連する問題