HttpContext'i parametre olarak alan bir yöntem için bazı birim testleri yazıyorum. İsteğin bir POST olduğu zaman davranışın beklendiği gibi olduğunu test etmek istiyorum.Test için bir HttpContext oluşturma, HttpRequest'in bir POST olduğunu nasıl belirleyebilirim?
Bir System.Net.HttpWebRequest oluştururken yöntemi ayarlamak kolaydır, ancak HttpContext'te kullanılan bir System.Web.HttpRequest oluştururken yöntemi belirtmenin bir yolunu göremiyorum.
Herhangi bir fikrin var mı?
Bağlam için yöntem bir httphandler tarafından çağrılır ve istek bir POST değilse 405 atması gerekir. Web.config'deki Verbs özelliği ile izin verilen yöntemleri filtreleyebileceğimi biliyorum, ancak gelecekte başka bir yönteme izin vermek için fiilleri değiştirmekten başka bir şeyin durmasını engelleyecek hiçbir şey yok. onun kendisi. şu anda kullanımda
Yardımcısı yöntemi: Ben birim testi için alay nesneleri araştırma öneriyoruz
private HttpContext GetHttpContext(string requestUrl)
{
var httpRequest = new HttpRequest("", requestUrl, "");
var stringWriter = new StringWriter();
var httpResponce = new HttpResponse(stringWriter);
return new HttpContext(httpRequest, httpResponce);
}
HttpContext.Current.Request.HttpMethod kullanın. Http://stackoverflow.com/questions/6898598/http-verb-of-current-http-context –
HttpMethod yalnızca bir alıcıdır, ayarlayıcı değildir, bu nedenle test için çalışmayacaktır. – mdchris
Başlığınızı düzenledim. Lütfen, "[Sorular soruların başlığında" etiketler içeriyor mu? "(Http://meta.stackexchange.com/questions/19190/)" bölümüne bakacak olursak, fikir birliği "hayır, yapmamalı" dır. –