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

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

Barbara Streisand
リリース: 2025-01-17 03:06:08
オリジナル
364 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート