gpt4 book ai didi

c# - 我如何对这个简单的表单进行单元测试

转载 作者:行者123 更新时间:2023-11-30 17:57:14 27 4
gpt4 key购买 nike

我试图理解为简单场景编写单元测试,但找不到任何东西可以变得如此简单。假设我有一个包含以下两个表单字段的 Web 表单:

FirstName
LastName

在后端,我有这个类:

class User
{
public string FirstName {get;set;}
public string LastName {get;set}
}

这些表单字段映射到,然后我使用普通的旧 ADO.NET(无框架)保存到数据库。我没有验证,它只是通过 INSERT 语句保存它。

单元测试适用于何处?我要写什么单元测试?这甚至值得测试吗?如果我确实有验证函数,那么我可以测试它们,对吗?

谢谢。

最佳答案

您实际上并没有对表单和 UI 进行单元测试。您要做的是将您的 UI 分成两部分:呈现并返回给客户端的 HTML,以及服务器端部分。这实际上是集成测试的一部分,而不是单元测试。请注意,尽管它不是单元测试,但您仍然可以完全自动化集成测试(这只是意味着像 NUnit 这样的单元测试框架不太合适,您需要制作自己的工具)。

您可以通过获取 HTML 并通过 HTML 分析器(如 HtmlAgilityPack)运行它来测试客户端部分,并确保页面中的所有 URI 都返回 200,并且所有表单字段都以正确的 name="" 属性。

然后您将单独测试服务器端部分,方法是使用一个程序提交带有示例数据的 POST 表单请求,然后直接检查您的数据库并确保新提交的数据现在位于正确的格式。您将为此使用专用的测试数据库,因为针对生产数据库运行测试工具绝不是一个好主意。

我无法告诉您是否值得为您的应用程序编写自动化测试 - 它通常花费与编写应用程序代码一样多的时间,甚至更多。您这样做是为了确保正确性,这在安全关键或关键任务系统中很重要。要问的简单问题是“如果我的程序不正确,人们会死亡/受伤还是会赔钱?”,如果答案是"is",那么您应该这样做。

像这样的测试也可以用于运行应用程序以监控“应用程序健康状况”。例如,我编写的一个应用程序系统与公用电话系统接口(interface),因此我需要编写一个测试程序来确保该应用程序能够成功调用电话)。

关于c# - 我如何对这个简单的表单进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13371609/

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