[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; //Here I am getting an error (read only).
...
}
kontroler dasar saya memiliki menimpa Initialize yang get's requestContext ini. Saya mencoba meneruskan ini tetapi saya tidak melakukan sesuatu dengan benar.
protected override void Initialize(System.Web.Routing.RequestContext requestContext)
{
base.Initialize(requestContext);
}
Di mana saya bisa mendapatkan informasi lebih lanjut tentang mengejek RequestContext dan HttpContext saya menggunakan Moq? Saya mencoba mengejek cookie dan konteks umum.
Buat permintaan, respons, dan tempatkan keduanya ke HttpContext:
sumber
Terima kasih pengguna 0100110010101.
Itu berhasil untuk saya dan di sini saya memiliki masalah saat menulis kasus uji untuk kode di bawah ini:
Dan inilah garis yang memecahkan masalah tersebut
Mungkin bisa membantu yang lain.
sumber
Inilah cara saya menggunakan ControllerContext untuk meneruskan jalur Aplikasi palsu:
sumber
Berikut adalah contoh bagaimana Anda dapat mengatur ini: Mocking HttpContext HttpRequest dan HttpResponse untuk UnitTests (menggunakan Moq)
Perhatikan metode ekstensi yang sangat membantu menyederhanakan penggunaan kelas tiruan ini:
Berikut adalah contoh cara menulis Uji Unit menggunakan moq untuk memeriksa bahwa HttpModule berfungsi seperti yang diharapkan: Uji Unit untuk HttpModule menggunakan Moq untuk membungkus HttpRequest
Pembaruan: API ini telah difaktorkan ulang menjadi
sumber