ホームページ >バックエンド開発 >C++ >ASP.NET テスト初期化メソッドで HttpContext.Current をモックする方法

ASP.NET テスト初期化メソッドで HttpContext.Current をモックする方法

Barbara Streisand
Barbara Streisandオリジナル
2025-01-17 03:06:08366ブラウズ

How to Mock HttpContext.Current in ASP.NET Test Initialization Methods?

ASP.NET テスト初期化メソッドで HttpContext.Current をモックする

ASP.NET では、HttpContext オブジェクトのモックは、コントローラーを分離してテストするための一般的な方法です。ただし、基本テスト クラスが HttpContext.Current にアクセスしようとする外部ライブラリを初期化する状況があります。テスト初期化メソッドで HttpContext が正しくモックされていない場合、エラーが発生します。

初期化メソッドで HttpContext をシミュレートするソリューション

この問題を解決するには、HttpContext.Current とは関係がないため、HttpContextBase をモックする必要はありません。代わりに、HttpContext を直接モックして、それを現在のコンテキストとして設定できます:

<code class="language-csharp">// 在测试初始化方法中
HttpContext.Current = new HttpContext(
    new HttpRequest("", "http://tempuri.org", ""),
    new HttpResponse(new StringWriter())
);</code>

その後、ログイン ユーザーになりすますように User プロパティを設定できます。

<code class="language-csharp">// 用户已登录
HttpContext.Current.User = new GenericPrincipal(
    new GenericIdentity("username"),
    new string[0]
);

// 用户已注销
HttpContext.Current.User = new GenericPrincipal(
    new GenericIdentity(String.Empty),
    new string[0]
);</code>

このアプローチを使用すると、初期化メソッドとそれにアクセスするライブラリを含むテスト クラス全体で HttpContext.Current が確実にモック化されます。このようにして、HttpContext プロパティに依存するコントローラー アクションをテストしながら、HttpContext へのアクセスを必要とする依存関係を初期化することもできます。

以上がASP.NET テスト初期化メソッドで HttpContext.Current をモックする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。