# 19-Java与JUnit4整合

回到spring导航页

Spring Test测试模块

  • Spring Test是Spring中用于测试的模块
  • Spring Test对JUnit单元测试框架有良好的整合
  • 通过Spring Test可在JUnit在单元测试时自动初始化IoC容器

# Spring 与 JUnit4整合过程

  • Maven工程依赖spring-test
  • 利用@RunWith与@ContextConfiguration描述测试用例类
  • 测试用例类从容器获取对象完成测试用例的执行

@RunWith注解的含义为: 将JUnit4的运行过程交给Spring来完成,通过这个注解可以让Spring接管JUnit4的控制权,完成IOC的初始化工作;而@ContextConfiguration则用于说明在初始化IOC容器过程中,需要加载哪个配置文件

# spring与JUnit4整合示例代码

目录

  <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.5</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>5.3.5</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package com.torey.spring.dao;

/**
 * @Author http://torey611.gitee.io/li-tao-feng/
 * @Email torey6061@qq.com
 * @Date 2021/5/1 12:24
 * @描述:
 */
public class UserDao {
    public void insert(){
        System.out.println(this.getClass().getName() + ".insert()");
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
package com.torey.spring.server;

import com.torey.spring.dao.UserDao;
import org.springframework.beans.factory.annotation.Autowired;

/**
 * @Author http://torey611.gitee.io/li-tao-feng/
 * @Email torey6061@qq.com
 * @Date 2021/5/1 12:24
 * @描述:
 */
public class UserService {
    private UserDao userDao;

    public void createUser(){
        System.out.println(this.getClass().getName()+ ".createUser():创建用户");
        userDao.insert();
    }
    public UserDao getUserDao() {
        return userDao;
    }

    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

applicationContext.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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="userDao" class="com.torey.spring.dao.UserDao"></bean>
    <bean id="userServer" class="com.torey.spring.server.UserService">
        <property name="userDao" ref="userDao"></property>
    </bean>
</beans>
1
2
3
4
5
6
7
8
9
10
package com.torey.spring.server;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import javax.annotation.Resource;

import static org.junit.Assert.*;

/**
 * @Author http://torey611.gitee.io/li-tao-feng/
 * @Email torey6061@qq.com
 * @Date 2021/5/1 12:32
 * @描述: 光标定位到某个方法,按Ctrl+Shift+t 就可以生成测试用例
 */
@RunWith(SpringJUnit4ClassRunner.class)//将JUnit4的执行权交由Spring Test,在测试用例执行前自动化初始IoC容器
//@ContextConfiguration("classpath:applicationContext.xml")//用于说明加载哪个配置文件
@ContextConfiguration(locations = {"classpath:applicationContext.xml"})//用于说明加载哪个配置文件
public class UserServiceTest {
//    @Resource
//    private UserService userService;
    @Autowired
    private UserService userService;
    @Test
    public void createUser() {
        userService.createUser();
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

# 导航,上一页,下一页

18使用java config实现Spring Ioc

# 支持我-微信扫一扫-加入微信公众号

Aseven公众号

# 赞赏作者

赞赏作者