JUNIT4 spring hibernate 测试
SPRING 发布有测试工具包 spring-test-4.0.4.RELEASE.jar, 用于单元测试。
WEB项目测试的关键点在于 SPRING 配置文件的加载。
(说明:不是测试 spring MVC 的 Controller)
具体实例:
准备测试类: AppUserManage.java, 配置为SPRIGN bean.
新建JUNIT4的测试类: AppUserManageTest.java
关键配置如下:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:conf/spring-core.xml","classpath:conf/spring-mvc-servlet.xml","classpath:conf/spring-hibernate.xml","classpath:conf/spring-hibernate_app.xml" })
@Transactional
@TransactionConfiguration(transactionManager = "transactionManager_app", defaultRollback = true)
最重的配置是加载SPRING 的配置文件。
加载SPRING 的配置文件,有很多重加载方法
(1)直接加载文件的:
@ContextConfiguration({"file:WebContent/WEB-INF/classes/conf/*.xml" })
加载的位置,可以是发布后的 classes 下的文件,也可以是源文件,因为是直接加载文件,所以路径可以自已定。
(2)通过 spring classpath 加载的。
这种方法加载时,从Web发布后的文件中加载,不是从源文件中加载,加载时,可以只加载测试必须的文件。
@ContextConfiguration(locations = { "classpath:conf/spring-core.xml","classpath:conf/spring-mvc-servlet.xml","classpath:conf/spring-hibernate.xml","classpath:conf/spring-hibernate_app.xml"})
(3)Hibernate的配置加载
涉及数据库测试时,需要加载Hibernate的配置文件。最主要的时Hbm文件的加载(如果采用XML方法配置的话)。
配置示例:
<mapping resource="com/onedollar/virtualnurse/baseservice/hibernate/platform/Street.hbm.xml" />
(4).properties 文件的加载
如果涉及使用.properties 配置文件,其路径也需要采用 classpath 方法配置。
<!-- 加载自定义配置文件 -->
<bean id="myPropertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="location"><value>classpath:conf/self.properties</value></property><property name="fileEncoding" value="utf-8" />
</bean>
(5)如果报 servletContent 错误,一般情况下,是servlet-api.jar 没有引入的原因,在Tomcat等容器中运行正常,是因为这个Jar包在Tomcat/lib 目录中存在。
JUNIT4 测试时,是脱离Tomcat等容器的,所以会报错。
(6)事务的配置很简单, 网上有很多的介绍。
(7)测试Bean的引用
@Resource(name = "appUserManage")
private AppUserManage appUserManage;
然后就可以直接使用。
(8)主要 import
import static org.junit.Assert.fail;
import javax.annotation.Resource;
import junit.framework.Assert;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.transaction.TransactionConfiguration;
import org.springframework.transaction.annotation.Transactional;
JUNIT4 spring hibernate 测试相关推荐
- 使用Spring+Junit4.4进行测试
http://nottiansyf.iteye.com/blog/345819 使用Junit4.4测试 在类上的配置Annotation @RunWith(SpringJUnit4ClassRu ...
- spring mvc+spring + hibernate 整合(二)
在上篇文章中,我建立了工程并配置了spring + hibernate.今天我们检验下上篇文章的成果,如何检查呢?那就是进行单元测试.本篇文章就让大家和我一起来就前面的建的工程进行单元测试. 本项目使 ...
- ssh(Struts+spring+Hibernate)三大框架整合-简述
ssh(Struts+spring+Hibernate)三大框架配合使用来开发项目,是目前javaee最流行的开发方式,必须掌握: 注意: 为了稳健起见,每加入一个框架,我们就需要测试一下,必须通过才 ...
- SSH之IDEA2017整合Struts2+Spring+Hibernate
摘要 IDEA无疑是Java编程的利器,在下面我们将介绍如何使用IDEA来整合SSH(Struts2 + Spring + Hibernate):介绍將分为三个部分来讲,分别是新建工程,Spring引 ...
- spring junit 测试
这两天做Web开发,发现通过Spring进行对象管理之后,做测试变得复杂了.因为所有的Bean都需要在applicationContext.xml中加载好,之后再通过@Resource去取得.如果每次 ...
- Struts+Spring+Hibernate整合入门详解
标签: strutshibernatespringbeanactionimport 2007-08-12 16:05 36280人阅读 评论(13) 收藏 举报 分类: STRUTS&SPRI ...
- Java程序员从笨鸟到菜鸟之(七十九)细谈Spring(八)spring+hibernate整合基本详解
由于spring和hibernate处于不同的层次,Spring关心的是业务逻辑之间的组合关系,Spring提供了对他们的强大的管理能力, 而Hibernate完成了OR的映射,使开发人员不用再去关心 ...
- 【struts2+spring+hibernate】ssh框架整合开发
SSH框架整合 1 Struts2+Spring+Hibernate导包 Struts2导入jar包: * struts2/apps/struts2-blank.war/WEB-INF/lib/*.j ...
- springmvc+spring+hibernate集成cxf
首先说一下背景,我们的系统是springmvc+spring+hibernate,已经能正常运行,现在要开发webservice,选用cxf. 1.maven依赖 <dependency> ...
最新文章
- 文件系统中文件的最长(字符数)绝对路径 Longest Absolute File Path
- 为什么不让安装卫xing×××啊
- python自媒体创作_做自媒体该做什么领域?
- 【论文解读】从BERT和XLNet到MPNet
- 【数据结构与算法】之判断字符是否唯一
- dd命令测试linux磁盘io情况,dd命令:做硬盘IO性能测试
- 解决开启Vue项目缺少node_models包问题
- FireFox nsSessionStore.js 问题报错解决
- java常用序列化与反序列化方法
- 6.3 API : XGBoost
- python lambda函数介绍
- Leetcode之两棵二叉搜索树中的所有元素
- [3]⾃自定义视图、视图控制器
- 清风老师数学建模视频课程第1讲层次分析法
- 第三批更新鸿蒙系统,emui11第三批更新名单-emui11第三批更新名单介绍 - 系统家园...
- 使用 python 查看谁没有交作业
- Win8.1重装win7或win10中途无法安装
- 父亲母亲-儿时的快乐
- 不管你学的是什么专业,你都应该多少懂些管理学的东西-----【管理学十大经典定理}...
- Android已读未读功能,android – 将SMS消息标记为已读/未读或删除在KitKat中不起作用的消息...
热门文章
- 锂离子/锂聚合物电池保护 IC原理
- 计算机实际机器与虚拟机器的概念,第1章 计算机系统结构的基本概念.ppt
- 计算机游戏纸牌技巧,为何早期电脑自带纸牌/扫雷等游戏?联想:为了使人们熟悉鼠标操作...
- 【陪女朋友逛街】引起的算法问题
- 华清远见-重庆中心-JavaWeb技术总结
- AP1236 线性LDO稳压IC 工作原理图分享
- PaaS和SaaS面临的主要安全问题
- JS中的document.getComputedStyle和document.getcurrentStyle
- 乐山市计算机学校成教中心,乐山市计算机学校:网络教育开学典礼顺利举行
- php 解压zip到目录下,PHP解压ZIP压缩包到指定目录 | kTWO-个人博客