基于数据库系统的单元测试问题

发表于:2014-02-07来源:未知作者:seanhe点击数: 标签:
基于数据库系统的单元测试问题. 在实践的过程中,很多项目并不能有效地坚持单元测试,即使书写了,也不能够持续也去维护这些单元测试,最后,这些单元测试代码将被废弃不再使用。长此以往,团队将不再愿意去写单元测试。 咎其原因,在我看来最重要的

  在实践的过程中,很多项目并不能有效地坚持单元测试,即使书写了,也不能够持续也去维护这些单元测试,最后,这些单元测试代码将被废弃不再使用。长此以往,团队将不再愿意去写单元测试

  咎其原因,在我看来最重要的不外乎两点。

  第一点,也是最重要的一点,团队并没有意识到书写单元测试是一件非常有必要,有意义,有价值的事。这个话题就不展开探讨了,网上一搜一大把。在这里,我分享我最最最喜欢的一句话:越好的单元测试会让我们的老板和我们自己能够睡得越踏实。

  第二点,单元测试比较麻烦,编写单元测试麻烦,维护单元测试麻烦。

  以我实际工作的经验来看,第二点是确确实实存在的,说是麻烦,还是比较客气的,有的时候在受压于项目进度和项目成本的情况下,几乎可以用做不到来形容。

  举两个例子来说明

  1. A表的STATUS字段从PENDING改成ACCEPTED

  2. 关连A, B, C, D表后实现查询功能

  大家会怎么做?

  大家的项目中会对这两种情况进行完整的单元测试,并有效地维护了这些单元测试用例吗?

  我们项目的做法是

  1. 准备数据

  2. 每次跑单元测试之前导入这些数据

  3. 跑完单元测试之后清理这些数据

  欢迎大家一起探讨,特别是结合自己项目中的实际情况一起探讨。

  我在接下来的文章中也将我实际使用的方法和工具和大家分享。

  大体思路是设计一个工具能基于具体的业务需求方便地准备数据,从而能让单元测试在这些数据的基础上能够有效和低成本地实现。

  工具的设计要求是:

  1. 能方便地设计和准备测试数据

  2. 在数据库变更的情况下能方便地维护已存在的测试数据

  3. 测试团队和开发团队都能够方便都使用

  4. 所有团队成员之间设计的数据要能够避免冲突

  具体实现是:

  1. 在Excel中设计数据

  2. 能使用一些API在集成工具中导入数据,如Hudson, Ant, Maven

  3. 能在图形界面中导入全部或特定测试用例的数据

  4. 能自动同步数据库表结构的变更到Excel中

  5. 分配指定的主键区间给每一个团队成员

原文转自:http://www.iteye.com/topic/1133275