我写的对HIBERNATE增删查的JUNIT测试

简介:

代码如下所示:

package com.localapp.hibernate;

import static org.junit.Assert.fail;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

public class JUnitSysUserDao {
	
	//定义局部变量
    Session session = null;
    Transaction transaction = null;
    SysUserDAO sysUserDAO = null;
    SysUser sysUser = null;

    private static SessionFactory sf = null;
    
	@BeforeClass
	public static void beforeClass() {
		//防止出现Junit的“静默”BUG的方法一
		try {
			sf = new AnnotationConfiguration().configure().buildSessionFactory();
		} catch (HibernateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	@AfterClass
	public static void tearDownAfterClass() throws Exception {
	}

	@Before
	public void setUp() throws Exception {
		sysUserDAO = new SysUserDAO();
		session = sysUserDAO.getSession();
	}

	@After
	public void tearDown() throws Exception {
		session.close();
		sysUserDAO = null;
	}

	@Test
	public void testSave() {
		//fail("Not yet implemented");
		//sysUser.setUserId(3);
		
		SysUser sysUser= new SysUser();
		sysUser.setUserName("aaa");
//		Configuration cfg=new Configuration();
//		SessionFactory sf = cfg.configure().buildSessionFactory();
		Session session = sf.openSession();
		session.beginTransaction();//执行操作
        session.save(sysUser);
        session.getTransaction().commit();//提交
        session.close();
		
	}

	@Test
	public void testFindById() {
		
//		transaction = this.session.beginTransaction();
//		sysUser =  sysUserDAO.findById(2);
//        //transaction.commit();
//		System.out.println("sysUser="+sysUser.getUserName()+": "+sysUser.getUserId());
//        Assert.assertNotNull(sysUser);
		SysUser sysUser= new SysUser();
		Session session = sf.openSession();
		session.beginTransaction();//执行操作
		sysUser=sysUserDAO.findById(6);
		System.out.println("sysUser="+sysUser.getUserName()+": "+sysUser.getUserId());
		 session.getTransaction().commit();//提交
	        session.close();
	}

//    public final void testFindById() { //测试查询记录
//        Dept 部门 = null;
//
//       部门 = this.部门访问对象.findById((long) 20);
//        Assert.assertNotNull(部门);
//    }
	
	@Test
	public final void testDelete() {
//		SysUser sysUser= new SysUser();
//		sysUser.setUserName("测试");
//		Session session = sf.openSession();
//		session.beginTransaction();//执行操作
//		session.delete(sysUser);
//        session.getTransaction().commit();//提交
//        session.close();
        
        /***
         * 以下是第二种测试
         */
        SysUser sysUser= new SysUser();
		Session session = sf.openSession();
		session.beginTransaction();//执行操作
		sysUser=sysUserDAO.findById(6);
		session.delete(sysUser);
        session.getTransaction().commit();//提交
        session.close();
	}
//    public final void testDelete() { //测试删除记录
//        Dept 部门 = new Dept();
//        部门.setDeptno((long) 90);
//        部门.setDname("测试部门");
//        部门.setLoc("中国-佛山");
//
//       事例 = this.会话.beginTransaction();
//        this.部门访问对象.delete(部门);
//        事例.commit();
//
//       部门 = null;
//        部门 = this.部门访问对象.findById((long) 90);
//
//       Assert.assertNull(部门);
//    }


}



目录
相关文章
|
1月前
|
IDE Java 测试技术
Junit 单元测试
JUnit是Java常用的单元测试框架,简化了测试用例的编写和执行。其特点包括简单注解、自动化测试、可扩展性、灵活性及与IDE的集成。使用方法涉及创建测试类、利用注解如@Test、@BeforeEach等管理测试生命周期,以及使用各种断言方法验证结果。此外,JUnit支持参数化测试以覆盖更多输入组合,并能与Maven、Gradle等构建工具集成,提升测试效率和项目管理。
38 1
|
3月前
|
Java 测试技术
JUnit 4 单元测试
单元测试是软件开发中必不可少的一环,但是在平常开发中往往因为项目周期紧,工作量大而被选择忽略,这样往往导致软件问题层出不穷。 线上出现的不少问题其实在有单元测试的情况下就可以及时发现和处理,因此培养自己在日常开发中写单元测试的能力是很有必要的。无论是对自己的编码能力的提高,还是项目质量的提升,都是大有好处,本文将介绍 Java 单元测试框架 JUnit 4 的基础认识和使用来编写单元测试,希望同样对你有所帮助。
|
5月前
|
Java 测试技术 数据库
Spring 单元测试(Junit)
Spring 单元测试(Junit)
|
6月前
|
Java 测试技术 API
Junit5单元测试框架详解
前面我们学习了Selenium自动化测试框架,但是有的时候测试用例会很多,我们需要一个工具来管理这些测试用例,而Junit就是一个很好的管理工具,简单点来说,Junit就是一个针对Java的单元测试框架;
100 0
|
6月前
|
Java 测试技术 程序员
|
4月前
|
测试技术
Junit单元测试 org.junit.jupiter.api.extension.ParameterResolutionException异常处理
Junit单元测试 org.junit.jupiter.api.extension.ParameterResolutionException异常处理
86 0
|
15天前
|
Java 测试技术 程序员
junit单元测试
junit单元测试
|
3月前
|
SQL Java 数据库连接
Mybatis之Mybatis简介、搭建Mybatis相关步骤(开发环境、maven、核心配置文件、mapper接口、映射文件、junit测试、log4j日志)
【1月更文挑战第2天】 MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下,iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github iBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO)
200 3
Mybatis之Mybatis简介、搭建Mybatis相关步骤(开发环境、maven、核心配置文件、mapper接口、映射文件、junit测试、log4j日志)
|
1月前
|
XML Java 测试技术
TestNG 与 JUnit 测试框架:哪个更好?
【2月更文挑战第16天】
46 1
TestNG 与 JUnit 测试框架:哪个更好?
|
6月前
|
测试技术
Junit单元测试为什么不能有返回值?
Junit单元测试为什么不能有返回值?