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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值