首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编码的UI测试

编码的UI测试
EN

Stack Overflow用户
提问于 2015-03-12 23:50:31
回答 2查看 560关注 0票数 0

我想使用编码的ui测试自动化一些测试。我的一些测试涉及对我想要断言的数据库进行事务处理。但是运行这些自动化测试会引入它们自己的问题,每次运行测试都可能会修改(添加、更新或删除记录)我的数据库的状态。在修改数据库时如何创建编码的ui测试,有没有一些通用的指导?我想添加模拟存储库吗?是否要创建一个测试环境,该环境具有可在每次测试运行时恢复为快照的数据库服务器?编码的ui测试是否应该不涉及断言数据库事务的值,而只是断言单击了一个按钮,并让单元测试断言数据库事务?

EN

回答 2

Stack Overflow用户

发布于 2015-03-17 20:15:04

我想这个问题适用于你写的任何测试--不仅仅是CodedUI测试。

您的测试可以在db上查询/ExecuteNonQuery。因此,在测试运行结束时,DB将从状态A移动到状态B。因此,最好确保在测试运行开始时运行一些DB刷新脚本,这样就可以确保在运行之前将数据库置于状态A,而不考虑其当前状态。

值得注意的是,当您对相同的测试数据运行相同的测试,而DB状态在测试运行开始时保持不变时,您每次都会执行完全相同的测试,并且被测试的应用程序很可能对这些测试具有免疫力,并且测试运行最终会随着时间的推移而减少回报。因此,将测试所用的测试数据随机化可能是一个好主意。

票数 3
EN

Stack Overflow用户

发布于 2016-08-09 03:49:22

它可以是简单的,也可以是你想要的那样复杂。

最简单的方法是在每次运行时完全重置数据。这可能意味着每次使用某个模式创建脚本从头开始创建数据库。

一种更复杂的解决方案是只重置模式的一部分(即:某些表,取决于测试的性质)。相关表格等。

无论你做什么--期望测试以特定的顺序运行是一种糟糕的做法。如果您有50个测试作为套件的一部分,这些测试必须能够以任何顺序运行,并根据测试人员运行-测试人员可能决定运行一个测试或所有测试。

这是高级的东西。在实际实现方面,您可以找到有趣的方法来标记带有属性的测试,并在那里定义要初始化的值(这可以是要清除的表名,或者如果您正在使用ORM,则可以是1个实体,并从那里动态确定相关的表。并动态运行清理。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29014338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档