SpringFramework4系列之SpringTest:(一)Spring4整合Junit

构建Spring 应用之后呢,编写单元测试就显得比较麻烦了,因为绝大部分的类都交给了spring托管了,需要人为的去加载spring的配置文件等等,或者需要编码去从spring 哪里得到某个类的实例等。

1.1 整合SpringTest之前的单元测试编码

public class TestDemo {
    private static DBDao dbDao;
    private Object[] testData;

    @BeforeClass
    public static void setUpBeforeClass() throws NamingException {    
        // Initialize Spring Context
        ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
        dbDao= context.getBean(DBDao .class);

    }

    @AfterClass
    public static void tearDownAfterClass() {}

    @Before
    public void setUp() {
    //prepare test data here
    testData =  {.........};
    }

    @After
    public void tearDown() {
    }

    @Test
    public void testSave() {
        dbDao.save(testData)
    }
}

使用SpringTest 整合JUnit

使用SpringTest整个JUnit,也是把Junit的框架整合到Spring容器中,交给spring来托管了,是代码更简洁,同时 SpringTest 也提供了许多组件的支持 比如 JDBC的测试, JNDI的测试,以及很多的Mock方法,足以满足J2EE的单元测试的需要了。

准备Maven的依赖坐标

编写单元测试 需要 Junit 和SpringTest的jar包依赖,maven构建工具会自行解决依赖关系,所以 SpringTest 依赖的 SpringCore 会被自行导入。

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>${project.dependency.org.junit}</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>${project.dependency.spring.core}</version>
    <scope>test</scope>
</dependency>

创建测试类

与常规的测试类的区别在于,使用了注解RunWith(SpringJUnit4ClassRuner.class)来声明使用Spring的 TestRunner类,同时呢使用ContextConfiguration注解 来声明 需要加载的 配置文件的路劲,这样一来就可以不用自行编码去加载配置文件啦。

同时我们还可以发现 测试依赖的类 也被打上注解@Autowired 实行自动装填。

整体的结构很简洁了。

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:spring-config-test.xml")
public class TestDemo {
    @Autowired
    private DBDao dbDao;
    private Object[] testData;

    @BeforeClass
    public static void setUpBeforeClass() throws NamingException {}

    @AfterClass
    public static void tearDownAfterClass() {}

    @Before
    public void setUp() {
    //prepare test data here
    testData =  {.........};
    }

    @After
    public void tearDown() {
    }

    @Test
    public void testSave() {
        dbDao.save(testData)
    }
}
时间: 2024-11-10 10:42:09

SpringFramework4系列之SpringTest:(一)Spring4整合Junit的相关文章

SpringFramework4系列之SpringTest:(二)MockJNDI

JNDI是J2EE 的标准之一,它依赖于容器, 比如说在开发测试阶段,datasource 或者jms 的factory 是通过JNDI所寻得的话,那么要测试的话,总是要部署到应用服务器上面 比如 TOmcat,weblogic或者Jboss等,并且 这些应用服务器必须设定好对应的JNDI,比如说我要把 某个datasource 绑定到 名为 appDS的JNDI上面,然后代码部分也是通过 context.looiup的方法取寻得这个命为appDS的对象,测试起来 相当麻烦. 在做集成测试的时候

Spring4 整合 Hibernate3 基本使用(通过注入 SessionFactory)

Spring4 整合 Hibernate3 基本使用(通过注入 SessionFactory) Spring4 整合 Hibernate3 基本使用通过注入 SessionFactory 步骤 1 导入 Maven 依赖 步骤 2 编写 beans 核心配置文件 步骤 3编写实体类 步骤4编写基于 Hibernate 的 DAO 层 步骤5编写测试方法 进一步研究 步骤 1 :导入 Maven 依赖 1.Spring4 的模块 spring-core.spring-context.spring-

08-spring整合 junit

目录 一.spring整合 junit 问题解析 二.Spring 整合 junit 的配置 1.加入架包 [email protected] [email protected] 一.spring整合 junit 问题解析 应用程序的入口 main 方法 Junit单元测试中,没有 main 方法也能执行 junit 集成了一个 main 方法 该方法就会判断当前测试类中那些方法有 @Test 注解 junit 就让有 Test 注解的方法执行 junit 不会管我们是否采用 spring 框架

Spring整合junit的配置

配置步骤: 1.导入Spring整合Junit的jar(坐标): <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>5.0.2.RELEASE</version> <scope>test</scope> </dependency> 2.使用Ju

SpringFramework4系列之SpringJMS:(四)异步接收消息 2.构建监听器

构建实现接口的监听器 编写监听器类并且实现监听器接口 public class ListenerDemo implements MessageListener {     public void onMessage(Message message) {         System.out.println(message.toString());     } } 注册MDP <!-- this is the Message Driven POJO (MDP) --> <bean id=&

Spring Test 整合 JUnit 4 使用

这两天做Web开发,发现通过spring进行对象管理之后,做测试变得复杂了.因为所有的Bean都需要在applicationContext.xml中加载好,之后再通过@Resource去取得.如果每次都要整个业务流做的差不多了再去测试,这样效率很低,也很麻烦.如果单独去写一个测试用类,这样太繁琐了.于是想起Spring有一个测试框架,能够整合JUnit进行测试,于是便拿出来试试~ 1. 加入依赖包 使用Spring的测试框架需要加入以下依赖包: JUnit 4 (官方下载:http://www.

Spring整合JUnit框架进行单元测试代码使用详解

[转]Spring整合JUnit框架进行单元测试代码使用详解 转自 http://blog.csdn.net/yaerfeng/article/details/25187775 感谢博主 :云淡风轻 .仅此一抹 一.Spring提供的JUnit框架扩展: 1. AbstractSpringContextTests:spring中使用spring上下文测试的Junit扩展类,我们一般不会使用这个类来进行单元测试,它是spring内部设计使用到的类    2. AbstractDependencyI

(六)Spring4 整合Hibernate4,Struts2

第一节:S2SH 整合所需Jar 包 Struts2.3.16,Spring4.0.6,Hibernate4.3.5 整合所需jar 包: Struts2.3.16 jar 包 Spring4.0.6 jar 包 Hibernate4.3.5 jar 包 第二节:Spring4 整合Hibernate4 Spring4 接管Hibernate4 所有Bean 实例,以及SessionFactory,事务管理器: 泛型注入: 第三节:Spring4 整合Struts2 Spring4 接管Stru

MyBatis笔记----Mybatis3.4.2与spring4整合:增删查改

结构图 刚之前没什么区别,多了一个applicationContext.xml 包图 由于之前出了一点错误,有些包可能多加上了 数据库图 model User.java package com.ij34.model; public class User { private int id; private String name; private int age; public int getId() { return id; } public void setId(int id) { this.