Spring整合JUnit4测试
来源:互联网 发布:淘宝指数在哪里看 编辑:程序博客网 时间:2024/04/27 22:55
Spring整合JUnit4测试,
pom:
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.3.8.RELEASE</version> </dependency> <!-- spring --> <!-- spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.3.8.RELEASE</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.8.0</version> </dependency> <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-core</artifactId> <version>1.3</version> </dependency> <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-parent</artifactId> <version>1.3</version> <type>pom</type> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>4.3.2.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>4.3.8.RELEASE</version> </dependency>
代码如下:
import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import service.Say;/** * @author 01369526 * */@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations="classpath*:spring/spring-context.xml")public class FirstTest {@Autowired@Qualifier("sayGoodbye")Say say;@Testpublic void say(){System.out.println(say.say()); }}
如果多个文件:
@ContextConfiguration(locations = { "classpath*:/spring1.xml", "classpath*:/spring2.xml" })
public interface Say {public String say ();}
@Servicepublic class SayGoodbye implements Say{ /* (non-Javadoc) * @see service.Say#say() */ public String say() { // TODO Auto-generated method stub return "good bye"; }}
xml:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!-- 扫描注解的包 --> <context:component-scan base-package="controller" /> <context:component-scan base-package="service" /> <context:component-scan base-package="service.impl" /></beans>
对这个类解释一下:
@RunWith 注释标签是 Junit 提供的,用来说明此测试类的运行者,这里用了 SpringJUnit4ClassRunner,这个类是一个针对 Junit 运行环境的自定义扩展,用来标准化在 Spring 环境中 Junit4.5 的测试用例,例如支持的注释标签的标准化
@ContextConfiguration 注释标签是 Spring test context 提供的,用来指定 Spring 配置信息的来源,支持指定 XML 文件位置或者 Spring 配置类名,这里我们指定 classpath 下的 classpath*:spring/spring-context.xml为配置文件的位置
@Autowired 体现了我们的测试类也是在 Spring 的容器中管理的,他可以获取容器的 bean 的注入,您不用自己手工获取要测试的 bean 实例了
@Transactiona@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)
@Transactional 这个非常关键,如果不加入这个注解配置,事务控制就会完全失效!
这里的事务关联到配置文件中的事务控制器(transactionManager = “transactionManager”),同时//指定自动回滚(defaultRollback = true)。这样做操作的数据才不会污染数据库! 如果有@Transactional 注释标签是表明此测试类的事务启用,这样所有的测试方案都会自动的 rollback,即您不用自己清除自己所做的任何对数据库的变更了。
阅读全文
0 0
- Spring整合Junit4测试
- Spring整合JUnit4测试
- Spring4整合Junit4 测试
- Spring Test 整合JUnit4
- Spring整合Junit4
- Junit4 整合 Spring
- spring整合JUnit4
- Spring整合Junit4
- java web下spring整合hibernate怎么用junit4测试
- 【项目实战】使用Spring Test+Junit4整合进行测试
- Spring整合JUnit4测试使用注解引入多个配置文件
- junit4测试service-spring
- spring junit4 注解测试
- 使用JUnit4测试Spring
- 使用JUnit4测试Spring
- Junit4测试Spring注入
- Junit4+spring测试类
- JUNIT4 spring hibernate 测试
- Android如何使用API
- C语言读取dat数据
- 房屋建造
- Mysql忘记root密码后如何重置
- Linux下PHP环境的搭建
- Spring整合JUnit4测试
- 如何设置电脑周一至周五8点开机,18点关机,周六周末不开机
- 系统动画
- 网络原理---socket入门
- K
- 后缀数组模板
- C++中易记混知识点总结(长期更新)
- mysql——Tree
- js实现拖拽函数