DBUnit调研报告1.1.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DBUnit调研报告1.1

DBUnit数据库单元测试 前言(出生地和原因) DBUnit是Junit家族中的一员,是专门用来测试数据库的工具。本文将对其应用进行一个简单的介绍,帮助学习使用该工具。 DBUnit是对Junit的一个扩展,提供测试子类TestCase(对接触过Junit的人比较熟悉,如果没接触过,只要记住这个类名称就可以了),其关键类继承了Junit的TestCase,并对其函数进行了重写和接口扩展工作,为对数据库的测试提供了很大的便利。 概述(DBUnit的便利) 在数据库测试中,主要是测试程序中写的Query语句是否正确执行的工作。在以前的实际应用中,在自己进行测试时,需要自己写入数据,执行后需查看数据是否正确,清理不正确数据,然后继续修改数据,已完成Query的正确性。如果使用数据库IDE可能还会方便一点,但是其简单却繁琐的工作会耽误很多时间。 DBUnit则会帮助你完成这一部分对数据库数据的操作,即提供单元测试框架,并帮助测试者完成对数据的自动写入、正确性验证、数据清理等工作。 当然,你也可以完全脱离测试的目的,使用其里面的方法完成一些其他工作(如数据库数据的自动载入、备份等)。 准备(用到的jar包) 使用前除了必须的Junit库之外,还需要其他几个包。如图1.0 图1.0 jar包 DBUnit使用了一些日志功能,所以需用到后三个包内的一些方法。 核心(大量的xml文件) 既然要对数据库进行自动载入、验证等工作,则必须需要数据。但是数据从哪里来,这是使用前必须了解的事情。 一些使用DBUnit很长时间的程序猿会评价到:DBunit很好用,就是对xml文件的操作太多。 从这句话就可以看出,xml文件对该工具的重要性。没错,我们的数据来源就是xml文件。 一般情况下,对于一个用例,会用到两个xml文件:Query执行前数据库数据和正确执行后的数据库数据。当然,你也可以加一个数据库备份数据文件,随人而定。 不过在这里提出xml文件可能会对初学者有些干扰,不过不用急,图1.1会先介绍用到的xml的文件结构,还有你只要先知道这些结构并记住,数据都是来自这些文件即可。 图1.1 xml文件结构 解释: 该文件描述了一个 名为Employee的表以及其数据。其中含有五列 employee_uid、first_name、last_name、start_date、em_id。其对应的数据就为双引号中的数据(数据类型需与数据库中定义的数据类型相同),当然,数据库中必须有和这些项相对应的数据库表。 datasetdataset/标签中即为数据库的所有内容,EMPLOYEE /即为表名,而里面的紫色部分为项名。 测试前工作: 准备实体类 与正常的数据库访问是一样的,需要先创建实体类以及数据库表图1.2为简单的一个实体类样本。 图1.2 实体类Employee 准备数据库接口类 如图1.3 数据库接口类中,简单封装了一些基本的数据库操作,在各个方法中,都有需要被测试验证的Query语句。(本次测试中,作者使用的是H2数据库,看到陌生名称的同志们不要怕~) 在作者写的代码中,也直接封装了对数据库的链接,主要是为了监测实时数据库的状态。在使用DBUnit测试时,并不需要这些链接。 图1.3 接口类 开始测试(DBunit的实际使用) 注:初次接触Junit框架的朋友,首先要先了解一个特点,Juint框架中的TestCase接口。其中已经包含了主函数入口方法,故,只需要在继承TestCase的类中进行测试用例的编写,直接运行即可,无需外部调用方法。 一个测试基类 使用DBUnit测试时,需要创建一个基类,该将在该基类中进行所有用例的测试。 首先基类需继承DBUnit的扩展接口DBTestCase。如图1.4 图1.4 基类 重写四方法 获取数据库链接的方法IDatabaseTester DBUnit一共提供了四种连接数据库的方式,本文只介绍了一种JDBC链接的方式,每一种都需要借助有需求或是兴趣的可以去了解其他三种。 图 1.5 支持的四种数据库链接 第一种载入链接方法: 这一种是通过设定系统变量的方式。System.setProperty()方法,用来设置类中静态变量值的方式。如下为具体的代码截图1.6 图1.6 JDBC链接设置方法一 该段代码在构造函数中执行即可。 第二种载入链接方法: 通过IDatabaseTester工具具体获取连接的方法如图1.7所示 图1.7 IDatabaseTester方法,JDBC链接设置方法二 当然,IDatabaseTester并不是只有来获取数据库链接的,其他作用将在后面介绍。 载入测试数据方法 getDataSet() 用来载入测试用数据的方法如图1.8,其

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档