c# - 包含从 Request.Form 中挑选的数据的单元测试方法。新手问题

标签 c# asp.net unit-testing mocking

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

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

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

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

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

新人太糟糕了。

谢谢!

编辑::

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

这是 session 代码。它只在一个地方(一组测试),因为我在大约 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() + ";";
        }
    }

}

最佳答案

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

How do you mock the session object collection using Moq

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

看看 Moq 是否可以让您的 session 得到控制。但一些示例代码会有所帮助。更改名称和其他任何内容,以牢记您公司的最佳利益。

关于c# - 包含从 Request.Form 中挑选的数据的单元测试方法。新手问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11144776/

相关文章:

c# - 如果 Entity Framework/DbContext 是 DAL/Repository,它在 3 层架构中的什么位置?

java - PowerMock::[java.lang.IllegalStateException:没有对可用模拟的最后一次调用]

c# - UWP 中的错误或者我错过了什么

c# - 在集合中存储对公共(public)字段的引用

c# - WinRT/XAML 中的 FlipView 数据模板特性

c# - Web 应用程序中对 System.Windows.Forms 的资源和引用

javascript - aspx gridview 启用按钮

c# - dotnet 核心 Web 应用程序单元测试 Controller

java - 在 Java 中测试 try-catch block

c# - Resharper C# 格式样式在截断长行时在新行而不是同一行上显示 "new"