繁体   English   中英

我应该对这种边缘情况进行集成测试吗

[英]Should I do an integration test for such an edge case

sql表的NAME字段由其他字段组成:

1_2_UserId_CreationDatetime,例如1_2_domain \\ Elisa_15-07-2012 08:30:57

我的姓名字段具有唯一约束,以表示不允许使用相同的名称。 主键是自动公司ID。

在插入新的数据行时捕获一个UniqueConstraintException现在有意义吗,但是实际上不可能两次具有相同的名称,因为那样的话,用户必须两次登录Web应用程序并在同一秒钟内按下按钮,依此类推。 。

我真的应该测试这种情况吗?

更新资料

那就是工作流程:

用户通过从模板列表和发布中选择来创建新的测试计划。

然后将测试计划与releaseName_templateName_UserId_CreationDate保存在一起

但是会在4个字段中保存releaseId,templateId,UserId和CreatedDate。

为了将用户显示为NAME,releaseId和templateId(均为int)没有意义。

因此,我用所有4个part_names保存了NAME。

在此处输入图片说明

此复合NAME字段的另一种设计替代方案是从Testplan表中删除NAME字段,当我加载所有测试计划时,我尝试获取每个releaseId和templateId的releaseName和templateName。

你怎么看? 好吧,也请记住我对折边盒的原始问题。

我会测试一下。 异常的发生方式在某种程度上是无关紧要的。 系统的使用模式可能会随着时间而改变。

作为记录,您可能违反了第一个范式 ,如果您这样做,我建议您放弃该方法,除非您进行了很多思考和分析。 我将不得不看完整表。 如果这些其他列在同一表中,那么您肯定是。 您可以跨多个列添加唯一约束,也可以将这些列用作复合主键(如果这确实是您的意图)。 您可能还需要将其中一些字段移到其他表中。 我真的必须确保您的设计是确定的。

您描述测试的方式听起来像是测试将只是测试RDBMS是否正常运行-并不是您真正应该关注的事情(如果RDBMS无法正常工作,则您需要使用另一个用户)。 要么,要么您正在测试您的架构。 我不确定这是否有价值。 如果单元测试失败,您打算怎么做? 您会验证架构正确吗?如果正确,那又如何? 如果您要执行许多其他测试以验证架构是否未更改为预期值,则可能需要进行这样的测试。 如果没有,对我来说就没有多大意义。

现在,如果您的应用程序处理了这个UniqueContraintException并做了一些特定的事情,那么验证该应用程序执行预期的测试就很有意义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM