Rumah >pembangunan bahagian belakang >C++ >Bagaimana Berkesan Mengejek HttpContext.Current dalam Ujian Unit ASP.NET MVC?
Menguasai HttpContext.Ejekan Semasa dalam Ujian Unit MVC ASP.NET
Ujian unit yang berkesan dalam ASP.NET MVC memerlukan pengasingan pengawal dan gelagat perpustakaan, memerlukan simulasi tepat objek HttpContext
. Artikel ini menangani cabaran mengejek HttpContext.Current
dalam kaedah permulaan ujian.
Kaedah tradisional, seperti menggunakan kelas pembantu seperti FakeControllerContext
, sediakan mock HttpContext
untuk pengawal. Walau bagaimanapun, pendekatan ini sering gagal, gagal meluaskan capaian olok-olok kepada kaedah Init
di mana perpustakaan luaran mungkin juga mengakses HttpContext.Current
.
Penyelesaian optimum memanipulasi terus HttpContext.Current
, menggantikan objek IPrincipal
dan IIdentity
. Ini memastikan ejekan yang konsisten merentas pengawal dan mana-mana perpustakaan yang dipanggil semasa kaedah Init
, walaupun dalam aplikasi konsol. Coretan kod berikut menggambarkan ini:
<code class="language-csharp">HttpContext.Current = new HttpContext( new HttpRequest("", "http://tempuri.org", ""), new HttpResponse(new StringWriter()) ); // Simulate a logged-in user HttpContext.Current.User = new GenericPrincipal( new GenericIdentity("username"), new string[0] ); // Simulate a logged-out user HttpContext.Current.User = new GenericPrincipal( new GenericIdentity(String.Empty), new string[0] );</code>
Manipulasi langsung ini menyediakan kawalan menyeluruh ke atas persekitaran ujian, membolehkan ujian unit yang lebih mantap dan berkesan dengan mensimulasikan HttpContext
dengan tepat.
Atas ialah kandungan terperinci Bagaimana Berkesan Mengejek HttpContext.Current dalam Ujian Unit ASP.NET MVC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!