Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk mengejek HttpContext.Current dalam Kaedah Ujian Init?

Bagaimana untuk mengejek HttpContext.Current dalam Kaedah Ujian Init?

Barbara Streisand
Lepaskan: 2025-01-17 02:51:09
asal
769 orang telah melayarinya

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

Mock HttpContext.Semasa dalam kaedah permulaan ujian

Memandangkan HttpContextBase mewarisi daripada ControllerContext dan HttpContext mewarisi daripada pustaka kelas asas, mengejek HttpContext.Current dalam kaedah Init akan menghadapi konflik warisan.

Alternatif menggunakan HttpContext

Nasib baik, kami boleh mengejek HttpContext secara langsung, yang cukup untuk mengendalikan IPrincipal (Pengguna) dan 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>
Salin selepas log masuk

Kod ini memastikan bahawa HttpContext diejek dalam pengawal anda dan dalam mana-mana perpustakaan yang dipanggil dalam kaedah Init.

Atas ialah kandungan terperinci Bagaimana untuk mengejek HttpContext.Current dalam Kaedah Ujian Init?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan