首先导入包:spring-test.jar和junit.jar,建议直接maven下载这些包
其次建立一个测试类,写上测试方法:
@Before
public void before() {
}
@Test
public void test() {
flower=new Flower();
flower.setName("测试花");
flower.setPrice(111);
getSession().save(flower);
}
@After
public void after() {
}
junit提供了注解:@Before @Test @After,标注上这些后,右键点击测试类->Run As,才会出现Junit Test这个选项,才可以进行单元测试,但是目前还不能进行测试,因为测试类还没配置Spring,sessionFactory是null的。
接下来配置Spring:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath:applicationContext.xml"})
@Transactional
public class HibernateTest {
@Autowired
private SessionFactory sessionFactory;
public Session getSession(){
return sessionFactory.getCurrentSession();
}
}
在测试类的前面加上注解@RunWith 这个很重要,我一开始没加,导致sessionFactory一直为空。
@ContextConfiguration指向spring配置文件,使得测试类可以读取Spring配置。
如果有用事物管理TransactionManager一定要在后面加上@Transactional,这样通过sessionFactory.getCurrentSession()获取Session时,就不会出现: No Session found for current thread 这个错误,当然也有可能其他地方配置出现问题,还需要确保事物管理的配置是够正确。