SSH单元测试

发表于:2010-3-29 14:03

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:ldongwei(CSDNBlog)    来源:51Testing软件测试网采编

分享:

  表现层

  我来继续观察表现层,其中包括Struts Action作为控制器的控制层,和Ext+HTML的UI。UI已经是一个独立的“系统”了,唯一和它联系的就是Action了。Action的作用是接收Http Request,读取参数,调用业务门面,拼接并返回Ext需要读取的数据源(XML或JSon)。我们采取的Struts和Spring的整合策略是将 Action托管给Spring。这样,如果想要测试Action:

  1、和Spring框架一起来测试

  2、Action中的逻辑很简单,(其实Facade中封装了领域对象的协作,也可看作一种控制器)测试的目的是:

  1)看看参数传过来没有

  2)领域模型是不是返回了正确的值

  3)XML或JSon的返回串拼接的是否正确。

  4)还有更基础的是测试一下Struts和Spring的配置文件写的对不对。

  3、实际上返回的领域对象只是Mock Object。

  我们的测试很原始,还没有使用过StrutsActionTest这样的框架,只是直接使用Tomcat来测试(不过已经比直接使用WebLogic容易多了)。

  速度很慢,每次都要初始化那些XML配置文件 ,而且还要读根本用不上的Hibernate的配置文件。

  关于Hibernate配置文件的问题是这样的:

  xml 代码

  1. < bean   id = "sessionFactory"

  2.      class = "org.springframework.orm.hibernate3.LocalSessionFactoryBean" >

  3.      < property   name = "configLocation" >

  4.          <!-- <value>WEB-INF\classes\Account-Hibernate.cfg.xml</value>-->

  5.            < value > Account-Hibernate.cfg.xml </ value >

  6.      </ property >

  7. </ bean >

  我们不得不在进行DAO测试时,使用没有注释掉的value来读取cfg.xml。而在测试Action时,又需要使用注释掉的配置。

  我觉得或许采用下面的策略能好些,不过不知道各位在自己的项目中都是如何做的:

  测试表现层时用专为测试这一层的Spring配置文件(我们采用了org.springframework.web.context.ContextLoaderListener这种方式 ),避免和Hibernate配置文件挂上联系。

  持久层

  采用DAO模式,我们的DAO很简单,就是直接调用Spring的getHibernateTemplate的方法,于是测试的时候关键就是测试:

  1、HQL语句是否书写正确,SQL语句是否生成正确

  2、Hibernate映射是否写的正确

  3、Sping和Hibernate基础设施是否配置正确

  4、是否按照预期完成CRUD操作。

  测试一个DAO需要耗时2秒,而不是0.12秒。 不过如果基于上面的目的进行测试也无可厚非。

33/3<123
2023测试行业从业人员调查问卷已开启,千元大奖正在等你~

精彩评论

  • lujun520
    2011-9-26 15:06:26

    希望再写的详细一点楼主,学习了!

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号