2011-07-19 4 views
1

私はコントローラーのアクションをテストしているので、偽のhttpContextを設定しています。このコンテキストには、偽のセッションが含まれています。派生コンストラクタを実行する前に、ベースで偽のコントローラセッションを設定していますか?

しかし、一部のリファクタリングの一部として、コンストラクタ内のコードがセッションに呼び出されてから、偽のセッションに移入することができます。

派生コントローラctorが実行されてNullReferenceExceptionがスローされる前に、ベースコントローラのSessionオブジェクトを生成する方法はありますか?または、ctorのこのコードは変更する必要がありますか?

+0

あなたはdependencie注入を使用しましたか?もしそうでなければ、このテクニックはあなたの問題を解決すると思います。 – dknaack

+0

DIがありますが、セッションが注入されるものではなく、オブジェクトが構築されると設定できる偽装されたベースコントローラの一部であるため、この状況では役に立ちません。セッションオブジェクトを注入することは過度のようです。 – StuperUser

答えて

0

私は、セッションにアクセスするコードを呼び出すISomeServiceを使用するようにctorのコードを変更しました。これは簡単に偽造可能です。

@ dnaackのコメントによれば、具体的なタイプを注入することができます。

関連する問題