在Spring使用junit注解进行单元测试

在Spring中可以使用junit配合注解进行单元测试

零、添加jar包:

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
    </dependency>

 

 

一、常用注解

1、@RunWith(SpringJUnit4ClassRunner.class),让测试运行于spring测试环境
2、@ContextConfiguration 用来指定加载的Spring配置文件的位置,会加载默认配置文件,  
@ContextConfiguration 注解有以下两个常用的属性:
locations:可以通过该属性手工指定 Spring 配置文件所在的位置,可以指定一个或多个 Spring 配置文件用,分开。
inheritLocations:是否要继承父测试用例类中的 Spring 配置文件,默认为 true。

二、常用方法

1、assertEquals(Object expected, Object actual)

比较两者是否相等

2. assertTrue(boolean condition)

比较参数是否为 true

 

三、配置文件:

可以在 测试类中添加注解,引用已有的配置文件 :

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:spring-mvc.xml","classpath:spring-mybatis.xml"})

 

也可以在项目的 src/test/resources文件夹下, 新增测试专用的配置文件,再引用:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath*:spring-test-service.xml")

spring-test-service.xml 如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://www.springframework.org/schema/beans"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
                        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">

  <!-- 引入src/main/resources 已有的配置文件  -->
  <!-- 以下的 META-INF/spring 是resuource文件夹下的xml文件的路径,如果是其他的文件名,自行修改 -->
  <import resource="classpath*:META-INF/spring/*.xml"/>

  <!-- support message international -->
  <aop:aspectj-autoproxy/>

</beans>

 

 

四、示例代码 (仅显示测试代码,xml配置、Service层代码略)

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:spring-mvc.xml","classpath:spring-mybatis.xml"})
public class UserServiceImplTest {

    @Autowired
    private UserServiceImpl userService;

@Before
public void before() throws Exception { 
} 

@After
public void after() throws Exception { 
} 


@Test
public void testGetUserById() throws Exception { 
//TODO: Test goes here...
    Assert.assertEquals( "lin" , userService.getUserById(2).getUserName());
} 


} 

SpringBoot单元测试,详情见: https://www.cnblogs.com/expiator/p/8651045.html

 

posted on 2018-01-12 16:34  乐之者v  阅读(587)  评论(0编辑  收藏  举报

导航