我写的对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(部门);
//    }


}



目录
相关文章
|
3月前
|
XML Java 测试技术
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
这篇文章介绍了Spring5框架的三个新特性:支持@Nullable注解以明确方法返回、参数和属性值可以为空;引入函数式风格的GenericApplicationContext进行对象注册和管理;以及如何整合JUnit5进行单元测试,同时讨论了JUnit4与JUnit5的整合方法,并提出了关于配置文件加载的疑问。
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
|
13天前
|
Java 程序员 测试技术
Java|让 JUnit4 测试类自动注入 logger 和被测 Service
本文介绍如何通过自定义 IDEA 的 JUnit4 Test Class 模板,实现生成测试类时自动注入 logger 和被测 Service。
20 5
|
2月前
|
SQL JavaScript 前端开发
基于Java访问Hive的JUnit5测试代码实现
根据《用Java、Python来开发Hive应用》一文,建立了使用Java、来开发Hive应用的方法,产生的代码如下
69 6
|
3月前
|
测试技术
单元测试问题之使用TestMe时利用JUnit 5的参数化测试特性如何解决
单元测试问题之使用TestMe时利用JUnit 5的参数化测试特性如何解决
43 2
|
3月前
|
Java 测试技术 Maven
单元测试问题之在Maven项目中引入JUnit 5和Mockito的依赖如何解决
单元测试问题之在Maven项目中引入JUnit 5和Mockito的依赖如何解决
178 1
|
3月前
|
测试技术
如何使用 JUnit 测试方法是否存在异常
【8月更文挑战第22天】
40 0
|
3月前
|
Java 测试技术 Maven
Junit单元测试 @Test的使用教程
这篇文章是一个关于Junit单元测试中`@Test`注解使用的教程,包括在Maven项目中添加Junit依赖、编写带有@Test注解的测试方法,以及解决@Test注解不生效的常见问题。
|
3月前
|
前端开发 Java 测试技术
单元测试问题之在Spring MVC项目中添加JUnit的Maven依赖,如何操作
单元测试问题之在Spring MVC项目中添加JUnit的Maven依赖,如何操作
|
3月前
|
Java 测试技术 API
深入理解单元测试:JUnit框架在Java中的应用
【8月更文挑战第3天】本文将引导读者通过JUnit框架的镜头,探索单元测试的奥秘。我们将一起揭开单元测试的神秘面纱,了解其在软件开发中的关键作用,并具体学习如何在Java项目中应用JUnit进行有效的单元测试。文章不仅会涉及理论概念,还将通过具体的代码示例,展示如何编写和运行单元测试,以确保软件质量。让我们开始吧,一起踏上这段提升代码质量和开发效率的旅程。
48 0
|
5月前
|
Java Maven Spring
spring如何使用junit进行测试
spring如何使用junit进行测试
spring如何使用junit进行测试