我正在尝试理解为简单场景编写单元测试,并且找不到任何简单的东西。假设我有一个包含以下两个表单字段的Web表单:
FirstName
LastName
在后端,我有这个课程:
class User
{
public string FirstName {get;set;}
public string LastName {get;set}
}
这些表单字段映射到然后我用普通的旧ADO.NET(没有框架)保存到数据库。我没有验证,只是通过INSERT语句保存它。
单元测试在哪里适用?我写什么单元测试?这甚至值得测试吗?如果我有DID验证功能,那么我可以测试那些,对吧?
感谢。
答案 0 :(得分:1)
您实际上并没有对表单和UI进行单元测试。您要做的是将UI分为两部分:呈现并返回给客户端的HTML,以及服务器端部分。这实际上是集成测试的一部分,而不是单元测试。请注意,尽管它不是单元测试,但您仍然可以完全自动化集成测试(这只意味着像NUnit这样的单元测试框架并不合适,您需要自己创建工具)。
您可以通过获取HTML并通过HTML分析器运行它来测试客户端部分,例如HtmlAgilityPack,并确保页面中的所有URI返回200并且所有表单字段都带有正确的{{ 1}}属性。
然后,您需要单独测试服务器端部分,方法是使用样本数据提交POST表单请求,然后直接检查数据库并确保新提交的数据现在位于数据库中格式正确。您可以使用专用的测试数据库,因为针对生产数据库运行测试工具绝不是一个好主意。
我不能告诉你是否值得为你的应用程序编写自动化测试 - 它通常需要花费尽可能多的时间,如果不是更多,编写应用程序代码。您这样做是为了确保在安全关键或关键任务系统中最重要的正确性。要问的一个简单的问题是“如果我的程序不正确,人们会死亡/受伤还是会有人赔钱?”,如果答案是“是”那么你应该这样做。
这些测试也可用于运行应用程序以监控“应用程序运行状况”。例如,我编写的一个应用系统与公共电话系统接口,因此我需要编写一个测试仪来确保应用程序成功拨打电话。)