- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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,其
您可能关注的文档
最近下载
- 牙合架、面弓 培训专用.ppt VIP
- 谐音背单词联想记忆七天背完高中单词打印版.docx VIP
- 八年级语文上册新教材解读课件(统编版2024).pptx
- 建设工程监理质量管理体系技术和档案管理制度汇编样本.doc
- GB 30251-2024 炼化行业单位产品能源消耗限额.pdf VIP
- 香精香料基本知识培训课件.pptx VIP
- 《中华优秀传统文化》教案 第16课 商贸文化.docx VIP
- Unit 5(第1课时 Section A 1a-1d)(教学设计)七年级英语上册(人教版2024).pdf VIP
- 人教版中考英语单词巧记妙背三(单词句子图片结合记忆)课件.pptx VIP
- 第6课 从小爱科学 第1课时(教学设计)2025统编版道德与法治三年级上册.pdf
文档评论(0)