2011-06-22 15 views
1

ASP.NETにHttpContext.Current.Request.Browser.Typeを設定する方法はありますか?これは読み取り専用の文字列プロパティです。だから、実際に文字列を割り当てることはできません。 HttpBrowserCapabilities型のブラウザプロパティを初期化しようとしましたが、コンストラクタは1つしかなく、パラメータもブラウザも使用しません。型はまだnullです。なぜなら、Typeプロパティをnullにしているので、私のユニットテストが失敗しているからです。ASP.NETでHttpContext.Current.Request.Browser.Typeを設定する

コメントを確認してください: nullをチェックするコードは間違いなく変更できますが、リクエストがブラウザから来たときにその値が決してnullでない場合は単体テストのテストになります。それで、それをすることにはそれほど興奮していません。しかし、それは私の最後の手段になることができます。

+0

ヌルブラウザタイプの可能性を考慮してテストを変更する方が簡単です。 – asawyer

答えて

0

具体的なタイプに直接頼るのではなく、HttpContextBaseを使用するようにコードをリファクタリングすることを考えてください。

これにより、必要な動作を提供するスタブオブジェクトを作成できます。最終的に独自のHttpBrowserCapabilitiesBaseオブジェクトを実装します。

ユニットテスト中にモックタイプを使用するように完全に制御できます。確かにそれが彼らのために作られたものです。

1

ASP.netが使用する独自のブラウザ定義ファイルを定義することができます。 http://forums.asp.net/p/955969/1176101.aspxをチェックしてください。

もしあなたがそれに失敗したブラウザが分かっていれば、ブラウザファイルをセットアップすることができます。しかし、私はnull値をチェックする方がより多くの可能性を説明するので、より意味があることに同意します。

関連する問題