packagecn.blogjava.usertype;importjava.util.ArrayList;importjava.util.List;importjunit.framework.Assert;importjunit.framework.TestCase;importorg.hibernate.HibernateException;importorg.hibernate.Session;importorg.hibernate.SessionFactory;importorg.hibernate.Transaction;importorg.hibernate.cfg.Configuration;publicclassHibernateTestextendsTestCase {
Session session=null;/*** JUnit中的setUp方法在TestCase初始化的时候会自动调用
* 一般用于初始化公用资源*/protectedvoidsetUp() {try{/*** 可以采用hibernate.properties或者hibernate.cfg.xml
* 配置文件的初始化代码
*
* 采用hibernate.properties
* Configuration config = new Configuration();
* config.addClass(TUser.class);*///采用hibernate.cfg.xml配置文件,与上面的方法对比,两个差异//1.Configuration的初始化方式//2.xmlConfiguration config=newConfiguration().configure();
SessionFactory sessionFactory=config.buildSessionFactory();
session=sessionFactory.openSession();
}catch(HibernateException e) {//TODO: handle exceptione.printStackTrace();
}
}/*** JUnit中的tearDown方法在TestCase执行完毕的时候会自动调用
* 一般用于释放资源*/protectedvoidtearDown() {try{
session.close();
}catch(HibernateException e) {//TODO: handle exceptione.printStackTrace();
}
}/*** 对象持久化测试(Insert方法)*/publicvoidtestInsert() {
Transaction tran=null;try{
tran=session.beginTransaction();
TUserMail user=newTUserMail();
user.setName("byf");
List list=newArrayList();
list.add("baiyf@msn.com");
list.add("bexy@163.com");
user.setEmail(list);
session.save(user);
session.flush();
tran.commit();
Assert.assertEquals(user.getId().intValue()>0,true);
}catch(HibernateException e) {//TODO: handle exceptione.printStackTrace();
Assert.fail(e.getMessage());if(tran!=null) {try{
tran.rollback();
}catch(Exception e1) {//TODO: handle exceptione1.printStackTrace();
}
}
}
}/*** 对象读取测试(Select方法)*/publicvoidtestSelect(){
String hql="from TUserMail where name='byf'";try{
List userList=session.createQuery(hql).list();
TUserMail user=(TUserMail)userList.get(0);
List mailList=user.getEmail();
Assert.assertEquals((String)mailList.get(0),"baiyf@msn.com");
Assert.assertEquals((String)mailList.get(1),"bexy@163.com");
}catch(Exception e) {//TODO: handle exceptione.printStackTrace();
Assert.fail(e.getMessage());
}
}
}