Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#(asp.net)中使用Request.Form创建NameValueCollection的单元测试方法_C#_Visual Studio 2010_Unit Testing - Fatal编程技术网

如何在C#(asp.net)中使用Request.Form创建NameValueCollection的单元测试方法

如何在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

我有一个需要进行单元测试的方法,正如主题所暗示的,它生成一个NameValueCollection。NVC的所有属性都通过表单数据填充:

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是一种方法吗?(我没有写代码,我只是测试一下…)。