转SQLUnit入门

SQLUnit是一个用于对存储过程进行单元测试的工具,其实也可以用于做针对数据库数据、性能的测试等,延续了xUnit家族的一贯特性和风格,只不过它的测试是以xml的方式来编写,但原则仍然和xUnit家族其他产品一样,强调的是输出和预期的比较,SQLUnit的文档比较的少,由于官方站上并没有提供类似其他开源工具的quick start guide,就写了这篇quick start guide以便大家快速的使用sqlunit,至于SQLUnit的高级用法还是得去多看看sqlunit.sf.net官方站上的文档。

为了让大家能快速的开始入门使用SQLUnit,将介绍SQLUnit环境的搭建、如何编写一个单元测试、如何运行。
1 SQLUnit环境的搭建

SQLUnit依赖jdk和ant,因此首先需要搭好jdk和ant的环境,jdk建议使用1.5以上的版本,ant使用1.6.5以上的版本即可。

搭建好jdk和ant的环境后,从sqlunit.sf.net上下载最新版本的SQLUnit,下载完毕后解压至目录即可,这样就完成了SQLUnit环境的搭建。
2 编写第一个单元测试

开始来编写我们的第一个单元测试,基于SQLUnit的单元测试以编写xml的方式来实现,在目录下创建一个demo.xml文件。

这个单元测试用来测试一个名为DEMO_SP的存储过程,这个存储过程需要输入一个字符串参数,输出的为一个记录集和一个字符串。

当输入bluedavy时,期待输出的记录集中为一条记录,内容为:

ID USERNAME

2 bluedavy

输出的字符串为:”Hello:bluedavy”。

在确定了输入和期待的输出后,可以开始动手来编写demo.xml了,编写完毕后整个demo.xml文件的内容如下:

<?xml version="1.0" encoding="GBK"?>

<!DOCTYPE sqlunit SYSTEM "file:docs/sqlunit.dtd">

<sqlunit>



<!--数据库连接信息-->

<connection connection-id="1">

<driver>oracle.jdbc.driver.OracleDriver</driver>

<url>jdbc:oracle:thin:@数据库IP:1521:数据库实例</url>

<user>用户名</user>

<password>密码</password>

</connection>



<test name="用户名为bluedavy时的测试" failure-message="根据用户名执行存储过程错误">

<call connection-id="1">

<stmt>{call DEMO_SP(?,?,?)}</stmt>

<param id="1" type="VARCHAR" inout="in">bluedavy</param>

<param id="2" type="CURSOR" inout="out">${p_cursor}</param>

<param id="3" type="VARCHAR" inout="out">${p_message}</param>

</call>

<result>

<outparam id="2" type="CURSOR">

<resultset id="1">

<row id="1">

<col id="1" type="INTEGER">2</col>

<col id="2" type="VARCHAR">bluedavy</col>

</row>

</resultset>

</outparam>

<outparam id="3" type="VARCHAR">Hello:bluedavy</outparam>

</result>

</test>

由上可知,基于SQLUnit编写一个存储过程的单元测试还是非常容易的,如果是对于函数的测试,只需要将上面的<stmt>改成这样的格式即可:<stmt>{?=call 函数名(?,?)}</stmt>。

对于熟悉xUnit家族工具的同学们而言,一个sqlunit单元测试的xml文件就相当于一个单元测试类,而其中的<test></test>就相当于测试一种输入情况的方法。
3 运行单元测试及生成报表

上面的单元测试是对oracle的存储过程进行测试的,因此在运行前需要将oracle驱动的jar文件放入sqlunit的lib目录下,或安装oracle客户端。

一切准备妥当后,首先将sqlunit目录下的build.xml中的

<sqlunit testfile="${testfile}" haltOnFailure="true" debug="${debug}"

logfile="${output.file}" logformat="${log.format}" />

修改为:

<sqlunit testfile="${testfile}" haltOnFailure="false" debug="${debug}"

logfile="${output.file}" logformat="${log.format}" />

避免由于测试的失败造成报表也无法生成。

修改完毕后可进入命令行,进入sqlunit的目录,运行如下命令:

ant -Dlog.format=canoo -Doutput.file=demotest.xml -Dtestfile=demo.xml sqlunit-flat canoo2html

运行完毕后,就可在sqlunit下的output目录中找到demotest.html,打开就可看到此次单元测试运行的报告了,如发现报告中未生成单元测试失败的详细信息,则需要把lib目录下的sqlunit-5.0.jar删除或移至其他目录。


作为一个quick start guide,就只介绍到这了,其他的像sqlunit的xml中test、outparam这些标签的具体含义和示例、如何Mock Database等可以到sqlunit官方网站(http://sqlunit.sf.net)上查看。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值