平时开发过程中,完成一个功能,都需要单元测试,接口的话,可以通过浏览器或者postman进行接口测试, 有时开发job类功能或者只调整部分代码,junit单元测试就很方便了,接下来简单介绍下。
1、引入基础依赖
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.8.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>5.2.8.RELEASE</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency>
|
2、创建测试service类
1 2 3 4 5 6 7 8 9
| import org.springframework.stereotype.Service; @Service public class UserService { public String getUser() { return "程序猿"; } }
|
3、创建spring的配置类applicationContext.xml
1 2 3 4 5 6 7 8 9 10 11
| <?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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <context:component-scan base-package="cn.river.junit"/> </beans>
|
4、test包下新建Junit测试类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| import org.junit.Test; import org.junit.runner.RunWith; import cn.river.junit.config.SpringConfig; import cn.river.junit.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @ContextConfiguration(locations = {"classpath:applicationContext.xml"}) public class UserServiceTest { @Autowired private UserService userService; @Test public void test() { System.out.println(userService.getUser()); } }
|
注意:如果使用的spring版本小于4.3, 需要使用:
@RunWith(SpringJUnit4ClassRunner.class)
上面的方法是通过xml配置文件的方式,还可以使用Java Config的方式:
新建配置类SpringConfig
1 2 3 4 5 6
| import org.springframework.context.annotation.ComponentScan; @ComponentScan(basePackages = "cn.river.junit") public class SpringConfig { }
|
测试用例中使用如下注解:
1
| @ContextConfiguration(classes = {SpringConfig.class})
|
此方法也适用于SpringBoot。
由于@RunWith和@ContextConfiguration 都是可继承的,项目中如果单元测试用例较多,我们可以写个基础测试类BaseTest,然后其他的测试用例继承BaseTest,就可以省略
@RunWith和@ContextConfiguration了
1 2 3 4 5 6 7 8
| import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @ContextConfiguration(locations = {"classpath:applicationContext.xml"}) public class BaseTest { }
|
UserServiceTest就可以这样写了:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| import org.junit.Test; import cn.river.junit.service.UserService; import org.springframework.beans.factory.annotation.Autowired; public class UserServiceTest extends BaseTest { @Autowired private UserService userService; @Test public void test() { System.out.println(userService.getUser()); } }
|
好了,spring中junit的大致用法就介绍完了,其他的用法大家有兴趣可以去探究。