Menggunakan Moq untuk Mengejek HttpContext dalam Aplikasi ASP.NET MVC
Mengejek HttpContext
dalam ujian ASP.NET MVC menggunakan Moq memerlukan pendekatan yang sedikit berbeza. Memandangkan harta HttpContext
pengawal anda ialah baca sahaja, anda perlu bekerja dengan induknya, ControllerContext
. Dengan menetapkan ControllerContext
, anda memastikan konteks olok-olok dihantar dengan betul kepada kaedah Initialize
.
Begini cara anda boleh mengubah suai kaedah ujian anda:
<code class="language-csharp">[TestMethod] public void Home_Message_Display_Unknown_User_when_cookie_does_not_exist() { var mockHttpContext = new Mock<HttpContextBase>(); var mockHttpRequest = new Mock<HttpRequestBase>(); mockHttpContext .Setup(c => c.Request) .Returns(mockHttpRequest.Object); var controller = new HomeController(); // Set the ControllerContext, not the HttpContext directly controller.ControllerContext = new ControllerContext(mockHttpContext.Object, new RouteData(), controller); // ... rest of your test code }</code>
Kaedah ini memintas had baca sahaja HttpContext
dan membolehkan ejekan yang berkesan. Untuk panduan lebih terperinci tentang mengejek HttpContext
dan RequestContext
dengan Moq, rujuk sumber berikut:
Atas ialah kandungan terperinci Bagaimana untuk mengejek HttpContext dalam ASP.NET MVC dengan Moq?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!