spring+xml集成测试

作者: 七克鲜鱼 | 来源:发表于2014-06-25 23:49 被阅读110次

Spring的集成测试###

单位测试和集成测试,我想大家都做过,一般情况下,一般逻辑且不需要操作数据库的情况比较适合于单位测试了。而对于一个数据库应用来说,集成测试可能比单元测试更重要,你可以想象,一个互联网应用,不是增修数据,就是查询数据了,那么验证操作在数据记录上的影响就更为需要。如果在的应用中使用了spring,那么就可以利用spring集成测试框架了,其实它所做的工作就是加载配置文件并配置其中相关的信息,其中也包括数据源等,其次在验证完成之后,回滚对数据表的操纵,当然你也可以手动的设置为不回滚,总之,spring的测试框架大大简化集成测试所要做的工作。

我的问题###

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

我的解决方法###

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

 <?xml version="1.0" encoding="UTF-8"?> 
<suite> 
    <case enable="true"> 
        <desc>测试用例描叙</desc> 
            <init> 
                <insert>初始化SQL</insert>
                <insert>初始化SQL</insert>  
            </init> 
        <assert> 
            <select>查询SQL</select> 
            <props> 
                <prop key="查询SQL的选择列">期望值</prop> 
                <prop key="查询SQL的选择列">期望值</prop> 
            </props> 
        </assert> 
    </case>
</suite>

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

你认为我的方法如何呢?你有没有更好的方法,欢迎各位给出你的意见。

相关文章

  • spring+xml集成测试

    Spring的集成测试### 单位测试和集成测试,我想大家都做过,一般情况下,一般逻辑且不需要操作数据库的情况比较...

  • 集成测试

    集成测试 基本概念:将软件集成起来后进行测试。集成测试又叫子系统测试、组装测试、部件测试等。集成测试主要是针对软件...

  • 系统学习---软件测试的分类

    1.按照测试阶段 单元测试,集成测试,系统测试,验收测试(正式验收测试,Alpha测试,Beta测试) 集成测试-...

  • 契约测试

    业界认为应该让契约测试来替代集成测试。认为你写的2-5%的集成测试和单元测试有重复,或者和其它地方的集成测试存在重...

  • 软件测试基础

    测试流程 单元 > 集成 > 系统 > 验收 集成测试 主要分为:一次性集成和增殖式集成。 一次性集成 自顶向下 ...

  • 中级测试工程师面试题

    【进阶题】 1.什么是单元测试、功能测试、集成测试? 加分项:单元测试、功能测试、集成测试分别在web端、接口端、...

  • 《徐昊-TDD项目实战70讲》学习笔记 -- Day 7

    07|TDD中的测试(3):集成测试还是单元测试? 集成测试还是单元测试? TDD 中的单元测试 在 TDD 的语...

  • 前端面试日更解答 2020-03-10

    今天的知识点 (2020.03.10) 14.单元测试、集成测试、系统测试区别? 13.什么是单元测试和集成测试?...

  • 测试过程

    一、测试过程简介 单元测试 集成测试 系统测试 二、测试过程单元集成系统及比较 1.单元测试--函数 单元测试时针...

  • 别再加集成测试了,快换契约测试吧

    本文说的集成测试是指系统集成后的自动化测试。(也可以说是系统端对端的集成测试) 是的,最初QA都是手动执行测试用例...

网友评论

    本文标题:spring+xml集成测试

    本文链接:https://www.haomeiwen.com/subject/yljjtttx.html