Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk mengejek HttpContext dalam ASP.NET MVC Menggunakan Moq?

Bagaimana untuk mengejek HttpContext dalam ASP.NET MVC Menggunakan Moq?

Linda Hamilton
Linda Hamiltonasal
2025-01-11 20:31:44171semak imbas

How to Mock HttpContext in ASP.NET MVC Using Moq?

Gunakan Moq untuk mensimulasikan HttpContext dalam ASP.NET MVC

Apabila cuba mensimulasikan HttpContext semasa menguji, anda mungkin menghadapi ralat yang menunjukkan bahawa sifat HttpContext ialah baca sahaja. Artikel ini akan memberikan penyelesaian kepada masalah ini dan menerangkan cara menggunakan Moq untuk mengejek HttpContext dan kebergantungannya.

Mengatasi isu baca sahaja

Dalam kelas HomeController, sifat HttpContext sememangnya baca sahaja. Walau bagaimanapun, adalah mungkin untuk menetapkan sifat ControllerContext, yang mengandungi HttpContext sebagai subproperty.

<code>controller.ControllerContext = new ControllerContext( context.Object, new RouteData(), controller );</code>

Contoh

Kod berikut menunjukkan cara menetapkan HttpContext yang dipermainkan menggunakan Moq:

<code>[TestMethod]
public void Home_Message_Display_Unknown_User_when_coockie_does_not_exist()
{
    var context = new Mock<httpcontextbase>();
    var request = new Mock<httprequestbase>();
    context
        .Setup(c => c.Request)
        .Returns(request.Object);
    HomeController controller = new HomeController();

    controller.ControllerContext = new ControllerContext( context.Object, new RouteData(), controller );

    ...
}</httprequestbase></httpcontextbase></code>

Lebih banyak sumber

Untuk butiran lanjut tentang mengejek RequestContext dan HttpContext, sila lihat sumber berikut:

Atas ialah kandungan terperinci Bagaimana untuk mengejek HttpContext dalam ASP.NET MVC Menggunakan Moq?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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