クリックイベントハンドラにコアロジックが含まれているボタンを持つユーザーコントロールがあります。このボタンのクリックハンドラをテストしたい。 このハンドラ関数は、最終的に参照アセンブリのpublic関数を呼び出す別のユーザーコントロール(別のC#プロジェクトに存在)のパブリック関数を呼び出します。 誰でも教えてください - そのようなハンドラの単体テストはどのようになりますか?ボタンがクリックされたことを(C#で)テストする方法は?
2
A
答えて
3
プログラムでClickイベントを発生させ、それを単体テストから呼び出すメソッドを記述できます。
編集:ああ、これは実際にはすでに存在している:ユニットテストでhttp://msdn.microsoft.com/en-us/library/hkkb40tf(VS.90).aspx
3
を、私たちはユニットをテスト - この場合には、ユーザーコントロールを。それ以上は何もない。しかし、ユーザーコントロールが外部にアクセスすることを許可すべきではありません。私たちはモック技術を使うべきです。 例では、あなたのUserControlAがUserControlBを呼び出す場合、UserControlBためのインターフェイスを作成し、模擬UserControlBに置き換えます
class UserControlA {
UserControlBInterface BReference;
public void setBReference(UserControlBInterface reference) { this.BReference = reference };
void OnClick (...) { BReference.callAMethod(); }
}
class MockupForB : UserControlBInterface {
boolean called=false;
public void callAMethod() { this.called = true; }
}
class TesterA : UnitTest {
public void testOnClick()
{ UserControlA a = new UserControlA(); MockupForB mockup = new MockupForB(); a.setBReference(mockup);
a.Button1.PerformClick(...); //following Aaronontheweb's advice
assertTrue(mockup.called,"the method callAMethod not being called by UserControlA");
}
}
そして実際UserControlBを確保するが、これはUserControlBのためのユニットテストに属し、参照ライブラリを呼び出します。
関連する問題
- 1. C#でボタンがクリックされたときを知る方法
- 2. Python QTボタンがクリックされたことを視覚化する方法
- 3. アコーディオンでボタンがクリックされたインデックスを特定する方法
- 4. Androidでクリックされたボタンを処理する方法は?
- 5. ボタンをクリックすると、ボタンが押されたままです。
- 6. CasperJSボタンがクリックされたが、そこ
- 7. Selenium C#Webdriverボタンがクリックされたかどうかを検出する方法
- 8. インテントがブロードキャストされたことをテストする方法
- 9. asp.netでgridviewボタンがクリックされたときにmodalpopupextenderを設定する方法
- 10. ボタンがクリックされたときにテーブルビューでボタンイメージを変更する方法
- 11. ボタンがvb.netでクリックされた場合にトリガーを取得する方法は?ここで
- 12. alertdialogでokボタンをクリックしたときにどのラジオボタンがクリックされたかを知る方法は?
- 13. ionic * ngForループでクリックされたボタンを特定する方法
- 14. どのボタンがクリックされたか把握する方法
- 15. どのボタンがクリックされたかを知る方法
- 16. Tkinterでボタンがクリックされたときにアクションを呼び出す方法
- 17. ボタンをクリックするとアクティビティが表示されることをどのようにテストできますか?
- 18. ボタンがクリックされたときに次のデータをロードする方法
- 19. ボタンがクリックされたときにデータベースレコードを挿入する方法 - Codeigniter、jquery、ajax
- 20. Phonegap、Navbarボタンがクリックされたときに関数を起動する方法
- 21. ボタンがクリックされたときにテーブルにテキストボックスを追加する方法
- 22. ボタンがクリックされたときにクラス内のテキストを取得する方法
- 23. ボタンがクリックされたときのインクリメント回数C#Visual Studio 2013
- 24. がクリックされたボタン
- 25. ボタンがクリックされたときのUmbrellaException
- 26. ボタンがクリックされたときにスワイプカード
- 27. 入力値ボタン(JavaScriptで)クリックされた場合はここで
- 28. Androidテスト:ダイアログボックスのボタンをクリックする方法は?
- 29. Mockto:コンストラクタが呼び出されたことをテストする方法は?
- 30. クリックしたときにクリックされたボタンを報告する