RSS
热门关键字:  java  Ajax  JSP  JSF  Struts
当前位置 : 首页>Hibernate>列表

Hibernate Po 单元测试经验总结

来源: 作者: 时间:2007-08-25 点击:
 重新了解Hibernate,发现在做单元测试时比较痛苦,增加一个类,要写一堆代码,并且要在配置文件中增加该类的映射问题,随将TestCase封装成一个新类HibernateTestCase 用于POJO测试。

在基类里面自动创建和销毁Session,SessionFractory并实现自动加载maping文件。这样在子类的测试中

专注于业务的测试就行了。

 

package com.jtv.junit;

import org.hibernate.*;
import org.hibernate.cfg.Configuration;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver;
import java.io.IOException;
import junit.framework.TestCase;


public class HibernateTestCase extends TestCase {
 public Session session = null;
 public SessionFactory sf = null;

 /**
  * Name:setUp
  * Desc
  *  初始化Hibernate配置文件,并自动搜寻Hibernate .hbm.xml文件,自动加载  
  * @author ddwcyl
  */ 
 protected void setUp() throws Exception {
  // 调用SuperClass的setUp()事件
  super.setUp();
  Configuration config = new Configuration().configure();
  //auto search and load mapping
        ResourcePatternResolver rp = new PathMatchingResourcePatternResolver(this.getClass().getClassLoader());
       
        Resource[] resources;
        try {
            resources = rp.getResources("/**/*.hbm.xml");
           
            for(int i=0;i<resources.length;i++){
                Resource resource = resources[i];
               
                //将找到的配置文件加入
                if(resource.exists())
                    config.addFile(resource.getFile());
               
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        //init SessionFactory
        sf = config.buildSessionFactory();
  session = sf.openSession();
  
 }

 /**
  * Name:tearDown
  * Desc
  *  关闭已经打开的资源,Session和SessionFractory
  * @author ddwcyl
  */ 
 protected void tearDown() throws Exception {
  //close session,sessfactory
  super.tearDown();
  if(session!=null){
   session.close();
  }
  if(sf!=null){
   sf.close();
  }
 }

}

最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
Google Adsense
相关文章