对基于Hibernate框架的数据访问组件进行单元测试的应用实例JBuilder开发工具中实现
《对基于Hibernate框架的数据访问组件进行单元测试的应用实例JBuilder开发工具中实现》由会员分享,可在线阅读,更多相关《对基于Hibernate框架的数据访问组件进行单元测试的应用实例JBuilder开发工具中实现(22页珍藏版)》请在装配图网上搜索。
1、杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料1.1 对基于Hibernate框架的数据访问组件进行单元测试的应用实例(JBuilder开发工具中实现)1、测试要点(1)对Hibernate组件的测试主要涉及如下两个方面的测试1) 对其hibernate.cfg.xml文件以及各个 O/R Mapping 的*.xml文件2) 基于hibernate的DAO组件中的各个数据访问功能的方法进行测试。(2)在测试用例类中利用Configuration类中的configure()方法来定位被测试系统的hibernate.cfg.xml文件,从而获得SessionFactory,最后获得Se
2、ssion。2、测试用例的基本模板程序package examplestest;import org.hibernate.SessionFactory;import org.hibernate.Session;import java.io.File;import org.hibernate.cfg.Configuration;import junit.framework.TestCase;public class TestHibernate extends TestCase private SessionFactory sessionFactory; private Session sessi
3、on; private List list; protected void setUp() throws Exception /创建出sessionFactorysuper.setUp();/根据实际改变 File file = new File(C:tempJ2SEAppclasseshibernate.cfg.xml); Configuration config = new Configuration().configure(file); sessionFactory = config.buildSessionFactory(); session = sessionFactory.open
4、Session(); protected void tearDown() throws Exception super.tearDown(); public void testSave() public void testQuery() 3、测试实例-对应用项目中的“hibernate.cfg.xml文件以及各个 O/R Mapping 的*.xml文件”进行测试(1)以“在J2SE的应用程序中使用Hibernate技术(MSSQL)”一文中的程序作为测试的目标类(2)添加测试用例类输入包名称为examplestest,类名称为TestHibernateXML,基类为junit.framewo
5、rk.TestCase选择测试运行器为JBuilder Test Runner最后将产生出下面的代码package examplestest;import junit.framework.*;public class TestHibernateXML extends TestCase protected void setUp() throws Exception super.setUp(); protected void tearDown() throws Exception super.tearDown(); (3)编程该程序以实现对“hibernate.cfg.xml文件以及各个 O/R
6、Mapping 的*.xml文件”中各个配置项目进行测试,其代码如下package examplestest;import junit.framework.*;import org.hibernate.cfg.*;import org.hibernate.*;import java.io.File;public class TestHibernateXML extends TestCase private SessionFactory sessionFactory=null; protected void setUp() throws Exceptionsuper.setUp();/根据实际改
7、变 File file = new File(D:/HibernateExmp/J2SEApp/classes/hibernate.cfg.xml); Configuration config = new Configuration().configure(file); sessionFactory = config.buildSessionFactory(); public void testHibernateXML() /对hibernate.cfg.xml中各个配置项目进行测试 this.assertNotNull(sessionFactory); protected void tear
8、Down() throws Exception sessionFactory=null; super.tearDown(); (4)执行该程序将产生下面的结果同时可以观察其状态输出(5)故意将Hibernate.cfg.xml中的配置项目设置错误比如:org.hibernate.dialect.SQLServerDialect1234再执行该TestCase。将出现下面的错误4、测试实例-基于hibernate的DAO组件中的各个数据访问功能的测试(1)添加测试用例(本例为对前面的DAO组件HibernateDAOBean.java类进行测试)类名称为TestHibernateDAOBean,
9、包名称为 examplestest,基类选择为junit.framework.TestCase并选择测试运行器最后将产生出下面的状态(2)编程该测试类,最后的代码如下package examplestest;import junit.framework.*;import examples.*;import org.hibernate.*;import java.io.*;import java.util.*;public class TestHibernateDAOBean extends TestCase private HibernateDAOBean hibernateDAOBean =
10、 null; protected void setUp() throws Exception super.setUp(); hibernateDAOBean = new HibernateDAOBean(); protected void tearDown() throws Exception hibernateDAOBean = null; super.tearDown(); public void testDoInsertBookDataToDB() throws HibernateException, UnsupportedEncodingException boolean actual
11、Return = hibernateDAOBean.doInsertBookDataToDB(); this.assertTrue(actualReturn); public void testDoSelectBookDataFromDB() throws HibernateException String selectSQL = from Book; ArrayList actualReturn = hibernateDAOBean.doSelectBookDataFromDB(selectSQL); this.assertNotNull(actualReturn);/再对其中的成员进行检查
12、 Iterator oneIterator= actualReturn.iterator(); while(oneIterator.hasNext() Book oneBook=(Book)oneIterator.next(); this.assertNotNull(oneBook.getBookName(); public void testDoUpdateBookDataToDB() throws HibernateException, UnsupportedEncodingException String bookID = ff80808108c246390108c2463ee70001
13、; /应该根据实际来决定 boolean actualReturn = hibernateDAOBean.doUpdateBookDataToDB(bookID); this.assertTrue(actualReturn); public void testDodeleteBookDataToDB() throws HibernateException String bookID = ff80808108c246390108c2463ee70001; /应该根据实际来决定 boolean actualReturn = hibernateDAOBean.dodeleteBookDataToDB
14、(bookID); this.assertTrue(actualReturn); (3)执行该测试用例将出现下面的结果同时,在Message窗口内出现Log信息5、给前面的两个TestCase添加TestSuit(1)进入TestSuit向导选择我们的各个测试用例类选择TestSuit的类名称以TestSuit的方式来运行1.1.1 学员练习 采用测试项目和Hibernate应用项目两者相互分离的方式再实现前面的测试过程1、添加一个项目,名称为TestJ2SEApp2、将原来的应用项目引入到本测试项目中3、添加对各个*.xml文件进行测试的TestCase类(1)添加TestCase类类名称为
15、TestHibernateXML,包名称为examplestest,基类为junit.framework.TestCase将产生出下面的内容(2)编程该TestCase类package examplestest;import junit.framework.*;import org.hibernate.cfg.*;import org.hibernate.*;import java.io.File;public class TestHibernateXML extends TestCase private SessionFactory sessionFactory=null; protecte
16、d void setUp() throws Exception super.setUp();/根据实际改变 File file = new File(D:/HibernateExmp/J2SEApp/classes/hibernate.cfg.xml); Configuration config = new Configuration().configure(file); sessionFactory = config.buildSessionFactory(); public void testHibernateXML() /对hibernate.cfg.xml中各个配置项目进行测试 thi
17、s.assertNotNull(sessionFactory); protected void tearDown() throws Exception sessionFactory=null; super.tearDown(); (3)执行该TestCase类将出现下面的测试结果4、添加对DAO组件类进行测试的TestCase类(1)引入原来的DAO组件类(2)对它添加TestCase类(3)编程该TestCase类package examplestest;import junit.framework.*;import examples.*;import org.hibernate.*;imp
18、ort java.io.*;import java.util.*;public class TestHibernateDAOBean extends TestCase private HibernateDAOBean hibernateDAOBean = null; protected void setUp() throws Exception super.setUp(); hibernateDAOBean = new HibernateDAOBean(); protected void tearDown() throws Exception hibernateDAOBean = null;
19、super.tearDown(); public void testDoInsertBookDataToDB() throws HibernateException, UnsupportedEncodingException boolean actualReturn = hibernateDAOBean.doInsertBookDataToDB(); this.assertTrue(actualReturn); public void testDoSelectBookDataFromDB() throws HibernateException String selectSQL = from B
20、ook; ArrayList actualReturn = hibernateDAOBean.doSelectBookDataFromDB(selectSQL); this.assertNotNull(actualReturn);/再对其中的成员进行检查 Iterator oneIterator= actualReturn.iterator(); while(oneIterator.hasNext() Book oneBook=(Book)oneIterator.next(); this.assertNotNull(oneBook.getBookName(); public void test
21、DoUpdateBookDataToDB() throws HibernateException, UnsupportedEncodingException String bookID = 402880680d877c31010d877c34500001; /应该根据实际来决定 boolean actualReturn = hibernateDAOBean.doUpdateBookDataToDB(bookID); this.assertTrue(actualReturn); public void testDodeleteBookDataToDB() throws HibernateException String bookID = 402880680d877c31010d877c34500001; boolean actualReturn = hibernateDAOBean.dodeleteBookDataToDB(bookID); this.assertTrue(actualReturn); (4)执行该TestCase类5、采用TestSuit方式来集成各个TestCase类(2)执行该TestSuit杨教授工作室,版权所有,盗版必究, 22/22页
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。