仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 501|回复: 11
打印 上一主题 下一主题

[学习教程] 了解下JAVA的对J2EE中的DAO组件编写单位测试

[复制链接]
精灵巫婆 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:14:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
其实你不用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就哗啦啦的。。。。。。
只想知道 该用户已被删除
5#
发表于 2015-2-6 18:09:08 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
6#
发表于 2015-2-8 06:09:19 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
金色的骷髅 该用户已被删除
7#
发表于 2015-2-24 10:23:57 | 只看该作者
是一种使用者不需花费很多时间学习的语言
飘飘悠悠 该用户已被删除
8#
发表于 2015-2-27 09:23:39 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
谁可相欹 该用户已被删除
9#
发表于 2015-2-27 11:39:23 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
活着的死人 该用户已被删除
10#
发表于 2015-3-9 01:47:14 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
小女巫 该用户已被删除
11#
发表于 2015-3-16 19:51:55 | 只看该作者
是一种使用者不需花费很多时间学习的语言
透明 该用户已被删除
12#
发表于 2015-3-23 00:01:00 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 07:45

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表