मैं एक विधि के लिए कुछ यूनिट परीक्षण लिख रहा हूं जो एक पैरामीटर के रूप में एक HttpContext लेता है। मैं परीक्षण करना चाहता हूं कि जब अनुरोध एक पोस्ट है तो व्यवहार की अपेक्षा की जाती है।परीक्षण के लिए एक HttpContext का निर्माण, मैं कैसे निर्दिष्ट कर सकते हैं HttpRequest एक पोस्ट है?
सिस्टम बनाते समय .NET.HttpWebRequest विधि को सेट करना आसान है, लेकिन मैं System.Web.HttpRequest बनाने के दौरान विधि निर्दिष्ट करने का कोई तरीका नहीं देख सकता जो कि HttpContext में उपयोग किया जाता है।
कोई विचार?
संदर्भ के लिए विधि को एक प्रेजेंटफैंडलर द्वारा बुलाया जाता है और यदि अनुरोध पोस्ट नहीं है तो उसे 405 फेंकना होगा। मुझे पता है कि मैं वेब.कॉन्फिग में वर्ब्स प्रॉपर्टी के साथ स्वीकार्य विधियों को फ़िल्टर कर सकता हूं, और मैं करूँगा, हालांकि भविष्य में किसी को भी क्रियाओं को बदलने से रोकने के लिए कुछ भी नहीं है, जिससे अन्य तरीकों की अनुमति मिल सके, जिसमें मैं हैंडलर की देखभाल करना चाहता हूं इसे स्वयं प्रयोग में
सहायक विधि वर्तमान में:
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 का उपयोग करें। Http://stackoverflow.com/questions/6898598/http-verb-of-current-http-context –
HttpMethod केवल एक गेटर है, न कि एक सेटटर, इसलिए परीक्षण के लिए काम नहीं करेगा। – mdchris
मैंने आपका शीर्षक संपादित किया है। कृपया देखें, "[प्रश्नों में उनके शीर्षक में" टैग "शामिल होना चाहिए?] (Http://meta.stackexchange.com/questions/19190/)", जहां आम सहमति है "नहीं, उन्हें नहीं करना चाहिए"। –