如何在C#(asp.net)中使用Request.Form创建NameValueCollection的单元测试方法
我有一个需要进行单元测试的方法,正如主题所暗示的,它生成一个NameValueCollection。NVC的所有属性都通过表单数据填充:如何在C#(asp.net)中使用Request.Form创建NameValueCollection的单元测试方法,c#,visual-studio-2010,unit-testing,C#,Visual Studio 2010,Unit Testing,我有一个需要进行单元测试的方法,正如主题所暗示的,它生成一个NameValueCollection。NVC的所有属性都通过表单数据填充: private NameValueCollection generateCollection() { NameValueCollection nvc; nvc = new NameValueCollection(); nvc.add("firstItem", HttpUtility.HtmlEncode(Request.Form["first
private NameValueCollection generateCollection()
{
NameValueCollection nvc;
nvc = new NameValueCollection();
nvc.add("firstItem", HttpUtility.HtmlEncode(Request.Form["firstItem"]));
nvc.add("secondItem", HttpUtility.HtmlEncode(Request.Form["secondItem"]));
nvc.add("thirdItem", HttpUtility.HtmlEncode(Request.Form["thirdItem"]));
return nvc;
}
我正在使用VisualStudio附带的单元测试功能。我该怎么做 您需要更改方法以获取
HttpRequestBase
然后,您可以使用模拟版本调用它。您需要更改方法以获取
HttpRequestBase
然后你可以用一个模仿的版本来称呼它。请原谅我听起来像个十足的白痴,但是。。。我是一名实习学生,正在学习如何做这些事情。我熟悉VS中单元测试的(非常)基础知识,但这是新的。。。你能给我指出一些可以帮助我解决这个问题的材料吗?我对您所说的“更改方法以获取HttpRequestBase”和“使用模拟版本调用它”有些迷茫。如果我要求的太多,我表示歉意。…
Request
是(Page
?)类中返回HttpRequest
实例的属性。您遇到了问题,因为您无法控制它。相反,您应该修改该方法,将HttpRequestBase
作为参数。正常调用它时,您可以传递新的HttpRequestWrapper(Request)
(或者创建一个重载来进行测试),您可以创建自己的(“mock”)类,该类继承HttpRequestBase
,并在表单
集合中返回您想要的任何内容,作为最佳实践,当编写这样的方法时,HttpRequestBase是一种方法吗?(我没有写代码,我只是去测试一下…)请原谅我听起来像个十足的白痴,但是。。。我是一名实习学生,正在学习如何做这些事情。我熟悉VS中单元测试的(非常)基础知识,但这是新的。。。你能给我指出一些可以帮助我解决这个问题的材料吗?我对您所说的“更改方法以获取HttpRequestBase”和“使用模拟版本调用它”有些迷茫。如果我要求的太多,我表示歉意。…Request
是(Page
?)类中返回HttpRequest
实例的属性。您遇到了问题,因为您无法控制它。相反,您应该修改该方法,将HttpRequestBase
作为参数。正常调用它时,您可以传递新的HttpRequestWrapper(Request)
(或者创建一个重载来进行测试),您可以创建自己的(“mock”)类,该类继承HttpRequestBase
,并在表单
集合中返回您想要的任何内容,作为最佳实践,当编写这样的方法时,HttpRequestBase是一种方法吗?(我没有写代码,我只是测试一下…)。