ユニットテストアプリケーションライフサイクルイベント
-
22-10-2019 - |
質問
system.web.ui.pageを継承するクラスを作成しました。
そのクラスでは、page_loadやpage_initなどのアプリケーションライフサイクルイベントをオーバーライドします。それらのイベントのベースを呼び出す前に、私はセッションの値、Cookieなどをチェックします。
セッションとCookieをチェックする方法をユニットテストしたいと思います。私はすでにセッションとCookieオブジェクトをock笑することができます。アプリケーションのライフサイクルイベントをユニットテストすることは可能ですか?それとも、ライフサイクルイベント内から呼び出されるすべての方法が別のクラスにあるように、クラスを完全に再要因する私の唯一のオプションですか?
解決
適切なオブジェクトをock笑できる場合は、ライフサイクルメソッドを直接呼び出すだけです。しかし、それが良い考えかどうかはわかりません。 IMHO、単一のライフサイクルイベントハンドラーは複数のタスクを実行する必要があります。それぞれがおそらく他のクラスに委任されるはずです。
私の個人的な習慣は、ユーティリティ/サービス/リポジトリコードを直接テストし、単体テストではなく統合テストで適用されるライフサイクルイベントにのみ直接コードを残すことです。
所属していません StackOverflow