2

我已经问了一些关于这个的问题,但还没有找到答案(或者也许明白该怎么做?)。

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

我已经完成了大部分。但绝对想不通如何测试两个方面。我有采用(a)会话变量和(b)Request.Form 数据的方法。

我发现的所有关于模拟的东西似乎都围绕着 MVC 架构。我问的第一个问题(here)说我应该“更改方法以获取 HttpRequestBase”。我不应该更改任何代码(学生安置)。

如何将表单/会话数据提供给我的单元测试?我找不到任何具体的内容。

糟透了是新的。

谢谢!

编辑::

抱歉,我确实有最小起订量,但缺少一些东西....

这是会话代码。它只在一个地方(一组测试),因为我在大约 7 或 8 个中有 Request.Form 的实例......

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() + ";";
        }
    }

}
4

1 回答 1

2

看看这里关于设置的第二个答案。

你如何使用 Moq 模拟会话对象集合

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

看看与 Moq 类似的东西是否会让你的会话得到控制。但是一些示例代码会有所帮助。更改名称和任何内容以使您的公司保持最佳利益。

于 2012-06-21T18:58:13.310 回答