gpt4 book ai didi

c# - 如何对 ASP.NET Web 窗体进行单元测试

转载 作者:行者123 更新时间:2023-11-30 16:52:28 27 4
gpt4 key购买 nike

我有一个 asp.net 应用程序,您可以使用 fileupload 控件上传一个 xml 文件,它被解析为一个对象列表并显示在一个非常简单的 GridView 中。但有人要求我编写一些单元测试。我是 tdd 的新手,想就如何编写一些单元测试提出建议。

这就是我目前所拥有的。我对 xml 文件进行了硬编码。有没有办法对文件上传进行单元测试

[TestClass]
public class UnitTest1
{

string source = @"C:\Users\\Desktop\Web Application\ Web Application.Tests\LunchTest.xml";


[TestMethod]
public void ParseXmlTest()
{
XmlUlitilyClass x = new XmlUlitilyClass();

Assert.AreEqual(x.ParseXml(source).Count, 4);
Assert.AreEqual(x.ParseXml(source)[3].Name,"Roast of the day");
Assert.AreEqual(x.ParseXml(source)[3].DesertIncluded, true);
Assert.AreEqual(x.ParseXml(source)[0].Calories, 350);
Assert.AreEqual(x.ParseXml(source)[1].Vegetarian, false);
}
}

最佳答案

Is there a way to unit test for the fileupload

好吧,您绝对不能在 ASP.NET 中对事件处理程序和其他出站内容进行单元测试,例如在您的情况下是 FileUpload 控件。此外,您不需要为文件上传控件编写单元测试,而只需检查主要逻辑的正例/负例。是的,您可以很好地对 xml 文件名进行硬编码。根据您的帖子,我看到的是,这里的主要业务逻辑是:

  1. 对文件处理逻辑进行单元测试。那就是测试如果输入了错误的文件(或)不存在的文件会怎样。您可以为 +ve/-ve 情况创建单独的单元测试方法,您可以在其中提供单独的硬编码文件输入。

  2. XML 解析逻辑。

您可以考虑重构您的代码,将这两个逻辑放在单独的方法中,然后对这些方法进行单元测试。

根据您的评论,如果您提供了错误的文件名,那么运行时肯定会抛出一个名为 FileNotFoundException 的异常,您可以使用 ExpectedException 属性在测试方法中捕获它.示例:

string source = @"C:\Users\\Desktop\Web Application\ Web Application.Tests\LunchTest.xml";

[TestMethod]
[ExpectedException(typeof(FileNotFoundException),
"Provided File doesn't exists.")]
public void TestFileNotExists()
{
//your code goes here
}

在 MSDN 中阅读有关单元测试的更多信息 A Unit Testing Walkthrough with Visual Studio Team Test

关于c# - 如何对 ASP.NET Web 窗体进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32547048/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com