小编mdc*_*ris的帖子

构建一个HttpContext进行测试,如何指定HttpRequest是一个POST?

我正在为一个以HttpContext作为参数的方法编写一些单元测试.我想在请求是POST时测试行为是否符合预期.

在创建System.Net.HttpWebRequest时,很容易设置方法,但在创建System.Web.HttpRequest时,我无法看到指定方法的方法,这是HttpContext中使用的方法.

有任何想法吗?

对于上下文,该方法由httphandler调用,如果请求不是POST,则应该抛出405.我知道我可以使用web.config中的Verbs属性过滤允许的方法,但是我会在未来阻止某人改变动词属性以允许其他方法,在这种情况下我希望处理程序要小心它本身.

目前使用的助手方法:

    private HttpContext GetHttpContext(string requestUrl)
    {
        var httpRequest = new HttpRequest("", requestUrl, "");            
        var stringWriter = new StringWriter();
        var httpResponce = new HttpResponse(stringWriter);
        return new HttpContext(httpRequest, httpResponce);
    }
Run Code Online (Sandbox Code Playgroud)

c# testing unit-testing httphandler httprequest

10
推荐指数
1
解决办法
2553
查看次数

标签 统计

c# ×1

httphandler ×1

httprequest ×1

testing ×1

unit-testing ×1