对大型数据库进行单元测试
我想问一下你对大型数据库进行单元测试的建议.
我想为一个主要在T-SQL中实现的应用程序编写单元测试,因此不能选择模拟数据库. 该应用程序的目的是管理信用协议申请的处理.有特定角色的用户可以更改协议对象的状态,我的工作是测试此过程的一部分. 我正在考虑两种方法: 第一种方法 创建符合特定条件的协议,然后测试协议状态的更改(例如,从在某个办公室等待到在此特定办公室处理的过渡).协议将在应用程序本身中创建,它们将成为我的测试用例.所有测试都将在执行这些测试后回滚的事务中. 好处 这种方法的优点是非常简单的测试.可以很容易地描述预期的数据,因为我确切地知道在转换之后对象应该是什么样子. 缺点 缺点是数据库无法以破坏测试的方式进行更改.测试用例中使用的用户和协议必须始终相同,如果需要更改数据库,则必须重复准备过程. 第二种方法 在单元测试中创建协议.以编程方式创建符合特定条件的协议.用于创建协议的数据将随机选择.此外,将随机创建将更改协议状态的用户. 好处 这种方法的优点是易于对对象进行更改,并且能够在具有不同数据的数据库上运行测试. 缺点 这两个对象(协议和用户)都有很多字段和相关数据,我担心实现这些对象的创建需要一些时间(我也害怕这些对象可能包含一些错误,因为创建方法会相当难以实施而没有错误). 您如何看待这两种方法? 任何Stack Overflow读者都认为值得努力创建第二种方法中描述的对象吗? 这里有没有人有创建此类测试的经验? 解决方法我不确定我是否完全同意您在测试运行后无法恢复数据库的假设.虽然我绝对同意某些测试应该在一个全尺寸,多TB的数据库上运行,但我不明白为什么你不能在一个更小,更小的测试数据库上运行大多数测试.是否存在需要测试的约束,例如“不能超过十亿个相同的行?”我的建议实际上是对大多数功能规范使用较小的测试数据库,并在每次测试时创建 – 丢弃所有表,并使用尽可能少的样本数据来测试您的功能. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如何在PL/SQL中将日期格式从MM/DD/YYYY更改为YYYY-MM-DD?
- SQL Server 2005安装过程中出现错误的解决办法
- Sqlserver 2005使用XML一次更新多条记录的方法
- Sqlserver2005附加数据库为只读的解决方法
- SqlServer数据库同步 两张表的数据 去除重复数据
- SQL Server2000 几种恢复模式介绍
- SQL Server不处理NText,Text,Xml或Image数据类型的比较
- 数据结构 – 为什么我们需要一个单独的数据结构,如数据库和
- 启动sqlserver(SQLEXPRESS或MSSQLSERVER)时提示请求失败或服
- MySql5.7.11编译安装及修改root密码的方法小结