Rumah > pembangunan bahagian belakang > C++ > Bagaimana Berkesan Mengejek HttpContext dalam Ujian Unit MVC ASP.NET Menggunakan Moq?

Bagaimana Berkesan Mengejek HttpContext dalam Ujian Unit MVC ASP.NET Menggunakan Moq?

Patricia Arquette
Lepaskan: 2025-01-11 20:41:42
asal
232 orang telah melayarinya

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

Gunakan Moq untuk mensimulasikan HttpContext dalam ASP.NET MVC

Apabila menguji pengawal ASP.NET MVC, mengejek HttpContext adalah penting untuk mengasingkan gelagat kod anda. Artikel ini akan menunjukkan cara untuk mencapai ini menggunakan rangka kerja mengejek Moq yang popular.

Katakan anda perlu mengejek HttpContext dalam kaedah ujian:

<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.HttpContext = context.Object; // 此处出错
}</code>
Salin selepas log masuk

Dalam kod di atas, anda akan menghadapi ralat semasa cuba menetapkan controller.HttpContext kerana ini ialah sifat baca sahaja. Walau bagaimanapun, masalah ini boleh diselesaikan menggunakan atribut ControllerContext boleh ubah:

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

HttpContext boleh disimulasikan dengan berkesan dengan menetapkan atribut ControllerContext. Untuk mendapatkan maklumat lanjut dan contoh tentang mengejek RequestContext dan HttpContext, sila rujuk sumber berikut:

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

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