我正在尝试对方法进行单元测试。该方法接受一个参数,该参数属于.NET Framework类库中的类HttpContext
。
所以我想我需要准备一个HttpContext
的对象。
该方法需要的所有内容,例如context
,都是
context.Request.QueryString
context.Request.Headers
以下是我的想法和问题
要了解如何使用HttpContext
,我点击进入定义
Visual Studio,我发现该类有一个构造函数
public HttpContext(HttpRequest request, HttpResponse response);
所以我需要提供它的两个参数,以便创建一个对象 该课程。
为了提供第一个参数,它是HttpRequest的一个对象,我找到了它的构造函数
//
// Summary:
// Initializes an System.Web.HttpRequest object.
//
// Parameters:
// filename:
// The name of the file associated with the request.
//
// url:
// The information regarding the URL of the current request.
//
// queryString:
// The entire query string sent with the request (everything after the'?').
public HttpRequest(string filename, string url, string queryString);
filename
的含义是什么?
哪个是url
,包含查询字符串的完整网址,还是?
之前的部分?
为了提供类HttpResponse
的第二个参数,我找到了它的构造函数
public HttpResponse(TextWriter writer);
要测试的方法实际上并不需要context.Response
。所以我可以简单地将其创建为HttpContext
的构造函数的第二个参数:
writer = new TextWriter ();
response = new HttpResponse(writer);
鉴于TextWriter
的构造函数受到保护?
protected TextWriter();
protected TextWriter(IFormatProvider formatProvider);
在我可以创建HttpContext的对象之后,我是否需要调用一些对象 解析url和查询字符串以获取
的方法context.Request.QueryString
context.Request.Headers
或HttpContext
将隐含地在没有我的情况下完成工作
显式调用任何方法?
感谢。