junit4.7
一、引入jar包
好的习惯,建立自己的user library
junit-4.7.jar
建议:
1.学习maven的做法,将测试代码放在test目录下
----new source folder
src放的是开发性的代码
2.对哪个类进行测试,就对哪个包下面建一个TeacherTest类
当然可以用myeclipse直接进行建立junit test case
要加@Test注解
二、进行生成测试类
TeacherTest.java
将代码修饰一下
(每次测试都要建立一次SessionFactory,很费时
----处理方式:
单例/static语句块
辅助的语句块放在static
另一个方法:
(hibernate建议的做法是)启动和辅助类
)
三、@BeforeClass在对象初始化之前,class load内存之后之后执行的方法
单元测试现在写的不够好
使用assert,就不用在数据库中手动查看
需要spring和hibernate结合。
补充知识:
注解:
写给编译器看的javac
运行环境看的java.exe运行的时候帮你做些事情。
代码案例:
package com.zhuhw.hibernate.model; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.AnnotationConfiguration; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; public class TeacherTest { /*这个类TeacherTest一进来就被初始化了,在测试方法执行用已经初始化好的SessionFactory; * 只初始化一次*/ public static SessionFactory sf = null; @BeforeClass public static void beforeClass(){ sf = new AnnotationConfiguration().configure().buildSessionFactory(); } @Test public void TestTeacherSave(){ Teacher t = new Teacher(); t.setId(6); t.setName("zhuhw2"); t.setTitle("ccc2"); //因为使用的annotation,所以Configuration要使用AnnotationConfiguration /*Configuration cf = new AnnotationConfiguration(); SessionFactory sf = cf.configure().buildSessionFactory();*/ Session session = sf.openSession(); //在hibernate中执行操作要在一个事务里面 session.beginTransaction(); session.save(t); session.getTransaction().commit(); session.close(); sf.close(); } @AfterClass public static void afterClass(){ sf.close(); } }
由于一直是配置错误,原因是自己改了Teacher类的位置,增加了com.zhuhw.hibernate.model中的model,作用一直运行不成功
最后通过,原来的/hibernate_0100_HelloWorld/src/com/zhuhw/hibernate/model/TeacherOldTest.java中的报错信息进行解决了。
使用junit进行单元测试成功执行。
四、注意点
/hibernate_0100_HelloWorld/src/hibernate.cfg.xml
这个文件配置写错了,junit会有时出现把bug给吞了
解决办法:
在
sf = new AnnotationConfiguration().configure().buildSessionFactory();
加上try{} catch()
错误信息就会提示出来了。
代码案例:
package com.zhuhw.hibernate.model; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.AnnotationConfiguration; import org.hibernate.cfg.Configuration; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; public class TeacherTest { /*这个类TeacherTest一进来就被初始化了,在测试方法执行用已经初始化好的SessionFactory; * 只初始化一次*/ public static SessionFactory sf = null; @BeforeClass public static void beforeClass(){ /*关于junit会出现吞掉bug,1.可以在下面的语句上加上try catch * 2.或者加个main()方法,在main里面进行调用 beforeClass()*/ sf = new AnnotationConfiguration().configure().buildSessionFactory(); } @Test public void TestTeacherSave(){ Teacher t = new Teacher(); t.setId(11); t.setName("zhuhw7"); t.setTitle("ccc7"); //因为使用的annotation,所以Configuration要使用AnnotationConfiguration /*Configuration cf = new AnnotationConfiguration(); SessionFactory sf = cf.configure().buildSessionFactory();*/ Session session = sf.openSession(); //在hibernate中执行操作要在一个事务里面 session.beginTransaction(); session.save(t); session.getTransaction().commit(); session.close(); } /*关于junit会出现吞掉bug,1.可以在下面的语句上加上try catch * 2.或者加个main()方法,在main里面进行调用 beforeClass()*/ public void main() { beforeClass(); } @AfterClass public static void afterClass(){ sf.close(); } }
相关推荐
codemirror版本:https://codemirror.net/5/doc/releases.html
外国电影演员识别系统源码分享
mf3010 打印扫描一体机驱动管理软件。
2024免费毕业设计成品,包括源码+数据库+往届论文资料 启动教程:https://www.bilibili.com/video/BV11ktveuE2d 讲解视频:https://www.bilibili.com/video/BV1YfkHYwEME 二次开发教程:https://www.bilibili.com/video/BV1Cw2rY1ErC
chrome-headless-shell-linux64-135.0.7004.0 (Canary).zip
DeepSeek大模型介绍与展望.pptx
英特尔的公版原理图和PCB,cadence版本
《单容水箱液位精准调控:模糊控制策略的深度研究与复现》,单容水箱液位随动系统的模糊控制研究 模糊控制lunwen复现 期刊:化工与自动化仪表(2021年) 图1为结构图,图9为原文结构图, 版本不一样,器件略有调整 图7为结果图,图8为原文结果图 ,单容水箱液位;模糊控制;研究;论文复现;期刊;化工与自动化仪表;结构图;结果图;版本差异;器件调整,"模糊控制研究在单容水箱液位随动系统中的应用与复现"
一个windows上使用的搜索小工具
内容: 这份数据集包含了来自国际大洋发现计划(IODP)第342航次站点U1405、U1406、U1407、U1409和U1410的浮游有孔虫碳酸盐团簇同位素、稳定氧和碳同位素,以及沉积物中的GDGT(甘油二烷基甘油四醚)和烯酮数据。这些站点位于北大西洋的新foundland脊(U1407、U1409和U1410)和J-异常脊(U1405和U1406),用于创建覆盖整个新生代的几乎连续但低分辨率(约每92万年一个样本)的数据拼接,并重建了碳酸盐团簇同位素、TEX86和UK'37海表温度。每个样本包含20立方厘米的沉积物,覆盖2厘米的核心深度区间。年龄模型主要基于详细的船上生物-磁性地层学研究(Norris等,2014)。然而,在40.8 Ma至44.8 Ma时间段内,使用了Cappelli等人(2019)更新的U1410站点年龄模型,通过与U1408站点的年龄模型对比来确定。 访问此数据集,请点击这里:"" ()。
厨房用品分割系统源码&数据集分享
.
监控鞋类物品检测系统源码分享
2024免费毕业设计成品,包括源码+数据库+往届论文资料 启动教程:https://www.bilibili.com/video/BV11ktveuE2d 讲解视频:https://www.bilibili.com/video/BV1YfkHYwEME 二次开发教程:https://www.bilibili.com/video/BV1Cw2rY1ErC
曲线图异常波形检测系统源码分享
内容概要:本文介绍了动车组车号自动识别的现状及其存在的问题,提出了基于图像识别技术的新方法。文中详述了传统人工识别与RFID识别方法的不足,重点阐述了一种新的图像识别系统的设计与实施方案,该系统能够实现在多种恶劣环境下高效精确地获取动车组车号,并通过实际案例展示了这套系统的优势以及其在铁路行业的广阔应用前景。 适用人群:从事铁路运输管理、轨道交通系统开发维护的技术人员,尤其是负责动车组调度、监控及维修工作的相关人员。 使用场景及目标:①用于替代现有人工记录与RFID标签方式,提升动车组车号识别精度与效率;②适用于各种天气状况下的户外作业场景;③旨在构建更加智能化、信息化程度更高的铁路运输体系,助力智慧动车段建设。 其他说明:文中还包括具体的实验对比和技术细节分析,如不同的开机触发装置选择、图像采集设备参数设置、补光措施及识别算法的设计,强调了实际应用场景中可能遇到的问题以及相应的解决方案。
基于AnythingLLM框架和Ollama环境本地运行deepseek,并可以通过用户自己的文档来针对性地回答用户问题,用户也可以上传文件来构建模型回复问题所需要的所有参考资料的知识库,使得模型相对于在线模型更加专业地解答用户的问题。同时本地部署保证了隐私性和针对性。
指针式表盘指针关键部位分割系统源码&数据集分享
多策略增强:MWOA鲸鱼优化算法与其他变体及2024年最新算法的实证比较与结果分析——新颖策略实施效果显著且复杂度无增加的研究,多策略改进的鲸鱼优化算法(MWOA),与其他三种变体和几种2024最新算法比较,策略都是很新颖的策略,可以直接写了发文章,并且没有增加复杂度上改进效果 ,MWOA; 变体算法; 最新算法; 策略新颖; 复杂度未增加; 改进效果显著,"多策略改进MWOA算法:与多种变体及2024新算法比较展示优越性"
织物缺陷检测系统源码分享[一条龙教学YOLOV8标注好的数据集一键训练_70+全套改进创新点发刊_Web前端展示]