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

テスト Init メソッドで HttpContext.Current をモックする方法

Barbara Streisand
Barbara Streisandオリジナル
2025-01-17 02:51:09778ブラウズ

How to Mock HttpContext.Current in a Test Init Method?

テスト初期化メソッドで HttpContext.Current をモックします

HttpContextBase は ControllerContext から継承し、HttpContext は基本クラス ライブラリから継承するため、Init メソッドで HttpContext.Current をモックすると、継承の競合が発生します。

HttpContext を使用した代替手段

幸いなことに、HttpContext を直接モックすることができます。IPrincipal (ユーザー) と IIdentity を操作するにはこれで十分です。

<code class="language-csharp">HttpContext.Current = new HttpContext(
    new HttpRequest("", "http://tempuri.org", ""),
    new HttpResponse(new StringWriter())
);

// 用户已登录
HttpContext.Current.User = new GenericPrincipal(
    new GenericIdentity("username"),
    new string[0]
);

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

このコードは、コントローラー内および Init メソッドで呼び出されるライブラリ内で HttpContext が確実にモック化されるようにします。

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

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