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 且方法應該爲靜態
這樣就不不出錯了

在這裏插入圖片描述

補充:在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章