Junit测试空指针问题

由于我用的版本是Junit5 在测试的时候发现会出现空指针问题,
源代码如下

package com.qjh.test;
//junit测试
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.After;
import org.junit.Before;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;

import com.qjh.pojo.User;
import com.qjh.util.HibernateUtil;

public class HibernateTest {
	  Session session =null;
	  Transaction tx=null;
	
	
	//每次调用方法前执行
	@BeforeAll
	public  void setUp() {
		try {
			//获取Session
			session =HibernateUtil.getSession();
			//获取事务并且开启事务
			 tx =session.beginTransaction();
			 /**
			  	* 等同于上一句话
				 * Transcation tx= session.getTranscation();
				 * tx.begin();
				 */
		} catch (Exception e) {
			
			e.printStackTrace();
		}
	}
	
	//每次调用方法后启执行
	@After
	public void tearDown() {
		HibernateUtil.close();
	}
	
			
			//数据添加
	@Test
	public  void testSave() 
			{
					try {
						 //获取对象
						User user =new User();
						//更改对象
						user.setName("我啊");
						user.setAge(22);
						//保存数据
						session.save(user);
						//提交事务
						tx.commit();
					} catch (Exception e) {
						e.printStackTrace();
						if(tx!=null){
							tx.rollback();
						}
					}
			}
			
}

测试结果一直报空指针 在session.save(user)这一行,后来我在网上找发现 Junit5版本和Junit4不一样

在Junit5版本中 @Before 应该换成 @BeforAll 且方法应该为静态
这样就不不出错了

在这里插入图片描述

补充:在这里插入图片描述

发布了8 篇原创文章 · 获赞 7 · 访问量 661

猜你喜欢

转载自blog.csdn.net/weixin_40523463/article/details/90551529