2012-06-21 41 views
2

我已经问了几个关于这个问题,但还没有找到答案(或者可能理解怎么办?)。包含从Request.Form中剔除数据的单元测试方法。新手问题

我们有一个应用程序,我们正在等待用户测试回来。与此同时,我被要求创建一个TestProject并测试所有方面,这是我们小组正在努力的方向。该应用程序是用C#编写的,aspx.net。

我大部分都完成了。但绝对无法弄清楚如何测试两个方面。我有方法需要(a)会话变量,和(b)Request.Form数据。

我发现有关嘲笑的一切似乎围绕着MVC体系结构。我问的第一个问题(here)说我应该“改变方法采取HttpRequestBase”。我不应该改变任何代码(学生安置)。

如何向表单/会话数据提供单元测试?我找不到任何具体的东西。

糟透了。

谢谢!

编辑::

对不起,我有起订量,但我失去了一些东西....

这里是会话代码。这是只在一个地方(一组测试),在那里我有的Request.Form的情况下,在约7或8 ....

protected void Page_Load(object sender, EventArgs e) 
{ 
    //get the "Storage" location 
    String strStorage = Path.To.Default.Storage; 

    XDocument xmlDoc = XDocument.Load(Path.Combine(strStorage, "pending/") + Request.Form["thing"] + ".xml"); 
    Session["Files"] = ""; 
    foreach (XElement element in xmlDoc.Elements().Elements()) 
    { 
     if (element.Name.ToString() != "File") 
     { 
      Session[element.Name.ToString()] = element.Value.ToString(); 
     } 
     else 
     { 
      Session["Files"] = Session["Files"] + element.Value.ToString() + ";"; 
     } 
    } 

} 
+0

你在使用像Rhino或Moq这样的测试框架吗? – Joe

+0

我确实有Moq,但显然无法弄清楚它究竟是怎么回事...... – mrwienerdog

+1

发布使用Session的代码,让我们看看是否有任何我们可以做的事情 – Joe

回答

2

看看第二个答案在这里这样做设置。

How do you mock the session object collection using Moq

controllerContext.SetupGet(p => p.HttpContext.Session["test"]).Returns("Hello World"); 

看看连同起订量类似的规定将得到控制会话的。但是一些示例代码会很有帮助。更改名称和任何内容以使您的公司保持最大的兴趣。