1

System.Web.UI.Pageを継承するクラスを作成しました。

そのクラスでは、page_loadやpage_initなどのアプリケーションライフサイクルイベントをオーバーライドします。これらのイベントのベースを呼び出す前に、セッション値、Cookieなどを確認します。

セッションとCookieをチェックするメソッドをユニットテストしたいと思います。私はすでにセッションとCookieオブジェクトをモックすることができます。アプリケーションのライフサイクルイベントを単体テストすることは可能ですか?または、ライフサイクルイベント内から呼び出されたすべてのメソッドが別のクラスに含まれるように、クラスを完全にリファクタリングする唯一のオプションですか?

4

1 に答える 1

1

関連するオブジェクトをモックできる場合は、ライフサイクルメソッドを直接呼び出すことができます。しかし、それが良い考えかどうかはわかりません。IMHO、単一のライフサイクルイベントハンドラーは複数のタスクを実行する必要があり、各タスクはおそらく他のクラスに委任する必要があります。そのコードを単体テストする必要があります。

私の個人的な習慣は、ユーティリティ/サービス/リポジトリコードを直接テストし、単体テストではなく統合テストで適用されるコードのみをライフサイクルイベントに直接残すことです。

于 2011-04-27T08:37:51.927 に答える