精灵巫婆 发表于 2015-1-18 11:14:08

了解下JAVA的对J2EE中的DAO组件编写单位测试

其实你不用Struts,spring这些工具,直接用jsp,servlet能够很方便地写出来,而且,可以根据个人的水平、爱好,有很多方案。而struts,spring这些工具的出来。
单位测试作为包管软件质量及重构的基本,早已取得宽大开辟职员的承认。单位测试是一种细粒度的测试,愈来愈多的开辟职员在提交功效模块时也同时提交响应的单位测试。关于年夜多半开辟职员来说,编写单位测试已成为开辟过程当中必需的流程和最好理论。
对一般的逻辑组件编写单位测试是一件简单的事变,因为逻辑组件一般只必要内存资本,因而,设置好输出输入便可编写无效的单位测试。关于略微庞大一点的组件,比方Servlet,我们能够自行编写摹拟对象,以便摹拟HttpRequest和HttpResponse等对象,大概,利用EasyMock之类的静态摹拟库,能够对恣意接话柄现响应的摹拟对象,从而对依附接口的组件举行无效的单位测试。
在J2EE开辟中,对DAO组件编写单位测试常常是一件十分庞大的义务。和其他组件欠亨,DAO组件一般依附于底层数据库,和JDBC接口大概某个ORM框架(如Hibernate),对DAO组件的测试常常还需引进事件,这更增添了编写单位测试的庞大性。固然利用EasyMock也能够摹拟出恣意的JDBC接口对象,大概ORM框架的次要接口,但其庞大性常常十分高,必要编写大批的摹拟代码,且代码复费用很低,乃至不如间接在实在的数据库情况下测试。不外,利用实在数据库情况也有一个分明的坏处,我们必要筹办数据库情况,筹办初始数据,而且每次运转单位测试后,其数据库现有的数据将间接影响到下一次测试,难以完成“立即运转,重复运转”单位测试的优秀理论。
本文针对DAO组件给出一种较为符合的单位测试的编写战略。在JavaEE开辟网的开辟过程当中,为了对DAO组件举行无效的单位测试,我们接纳HSQLDB这一玲珑的纯Java数据库作为测试时代的数据库情况,共同Ant,完成了主动天生数据库剧本,测试前主动初始化数据库,极年夜地简化了DAO组件的单位测试的编写。
在Java范畴,JUnit作为第一个单位测试框架已取得了最普遍的使用,无可争议地成为Java范畴单位测试的尺度框架。本文以最新的JUnit4版本为例,演示怎样创立对DAO组件的单位测试用例。
JavaEEdev的耐久层利用Hibernate3.2,底层数据库为MySQL。为了演示怎样对DAO举行单位测试,我们将其简化为一个DAOTest工程:

因为将Hibernate的Transaction绑定在Thread上,因而,HibernateUtil类卖力初始化SessionFactory和猎取以后的Session:
 publicclassHibernateUtil{
privatestaticfinal SessionFactorysessionFactory;
static{
try{
sessionFactory= newAnnotationConfiguration()
.configure()
.buildSessionFactory();
}
catch(Exceptione){
thrownew ExceptionInInitializerError(e);
}
}
publicstaticSession getCurrentSession(){
return sessionFactory.getCurrentSession();
}
}
HibernateUtil还包括了一些帮助办法,如: publicstaticObjectquery(Classclazz,Serializableid);
publicstaticvoidcreateEntity(Objectentity);
publicstaticObjectqueryForObject(Stringhql,Object[]params);
publicstaticListqueryForList(Stringhql,Object[]params);
在此不再多述。
<p>
他们对jsp,servlet,javabean进行封装就是为了展示他们的某个思想,与java的开发并没有必然的关系,也不见得在所以情况下,别人使用起来会简单。

精灵巫婆 发表于 2015-1-18 22:25:19

你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。

老尸 发表于 2015-1-22 13:31:04

设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧

admin 发表于 2015-1-31 06:58:30

你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。

只想知道 发表于 2015-2-6 18:09:08

Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)

仓酷云 发表于 2015-2-8 06:09:19

是一种将安全性(Security)列为第一优先考虑的语言

金色的骷髅 发表于 2015-2-24 10:23:57

是一种使用者不需花费很多时间学习的语言

飘飘悠悠 发表于 2015-2-27 09:23:39

有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)

谁可相欹 发表于 2015-2-27 11:39:23

我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。

活着的死人 发表于 2015-3-9 01:47:14

应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展

小女巫 发表于 2015-3-16 19:51:55

是一种使用者不需花费很多时间学习的语言

透明 发表于 2015-3-23 00:01:00

你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
页: [1]
查看完整版本: 了解下JAVA的对J2EE中的DAO组件编写单位测试