51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2133|回复: 0
打印 上一主题 下一主题

[讨论] spring+xml集成测试

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-4-28 15:50:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单位测试和集成测试,我想大家都做过,一般情况下,一般逻辑且不需要操作数据库的情况比较适合于单位测
试了。而对于一个数据库应用来说,集成测试可能比单元测试更重要,你可以想象,一个互联网应用,不是增
修数据,就是查询数据了,那么验证操作在数据记录上的影响就更为需要。如果在的应用中使用了spring,那
么就可以利用spring集成测试框架了,其实它所做的工作就是加载配置文件并配置其中相关的信息,其中也包
括数据源等,其次在验证完成之后,回滚对数据表的操纵,当然你也可以手动的设置为不回滚,总之,spring
的测试框架大大简化集成测试所要做的工作。

我的问题###

spring解决了我们集成测试当中的大部分问题,但是在有些情况下,还是非常的麻烦,主要在两个方面无法减少
测试的工作量,一是准备测试数据(先于测试插入数据表中的数据),可能针对于一个功能的一种场景的测试,
准备的测试数据可能就涉及到十几,几十张表,数据记录就达到几十,几百条。其二,需要验证的数据项非常
多(验证操作在数据记录上的影响),你可能需要验证十几张,几十张表中的若干个字段的数据正确性,所以
,在这种情况下,一个功能一个分支的测试就可能涉及到上百行代码,可以想象,要是这个功能多几个分支,
测试代码迅速膨胀,而且这样的代码还需要维护(要知道测试的代码也是需要维护了,极有可能因为表结构或
者程序逻辑发生的变化而需要变更测试代码) ,那么遇到这样的情况,有什么办法呢?

我的解决方法###

针对上面的测试窘境,主要是要解决两个方面的问题,第一,准备测试数据;第二,验证数据项。其实这样两
个问题归为一个问题就准备数据和验证项太多了,导致测试代码膨胀,解决这个问题的办法就是把准备测试数
据和验证项都放到外部文件中去,比如xml文件了,请看下面的xml文件:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <suite>
  3.     <case enable="true">
  4.         <desc>测试用例描叙</desc>
  5.             <init>
  6.                 <insert>初始化SQL</insert>
  7.                 <insert>初始化SQL</insert>  
  8.             </init>
  9.         <assert>
  10.             <select>查询SQL</select>
  11.             <props>
  12.                 <prop key="查询SQL的选择列">期望值</prop>
  13.                 <prop key="查询SQL的选择列">期望值</prop>
  14.             </props>
  15.         </assert>
  16.     </case>
  17. </suite>
复制代码

我们把测试的初始化脚本,断言的SQL以及期望值都放在xml文件中,其中case代表功能的一个逻辑分支。如
果这些东西都放在外部文件的时候,那么测试就只剩下了三步:第一步,读取xml文件;第二步,调用需要测
试功能;第三步,调用断言方法,这就是需要我们的测试代码了,其中第一步和第三步都是所有测试方法所
共有,这样是不是大大简化的代码量呢,另外由于初始化脚本,断言SQL,期望值都放在外部文件中,
就更便于测试代码的维护了。



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-25 17:12 , Processed in 0.065792 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表