Spring Boot 单元测试
1. 前言
一般来说,对控制层的接口访问可以使用PostMan进行,或者通过Swagger进行自动化的测试。
但是对于Service层或者Dao层的测试,就需要借助单元测试了。
2. 测试类写法
假设我们要对HelloService的hello方法进行测试:
@Service
public class HelloService {
public String hello() {
return "hello world";
}
}
1
2
3
4
5
6
首先我们需要在项目pom.xml中添加测试相关依赖支持:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
1
2
3
4
然后在src/test/java下创建类HelloTest,代码如下:
@SpringBootTest
@RunWith(SpringRunner.class)
public class HelloTest {
@Autowired
private HelloService helloService;
@Test
public void testHelloMethod() {
String result = helloService.hello();
Assert.assertThat(result, Matchers.is("hello world"));
}
}
1
2
3
4
5
6
7
8
9
10
11
12
这段代码需要详细解释下:
第一,@SpringBootTest和@RunWith(SpringRunner.class)注解保证当前的类中测试方法启动时,已经使整个Spring容器正常运作,也就是相当于快速启动了整个SpringBoot项目。
第二,由于已经启动了容器,所以@Autowired可以注入任意组件。
第三,@Test标注的方法会被当做测试方法执行。
3. 小结
对Service或者Dao层进行测试,可以直接通过测试类发起,相较于通过控制层发起,更加简便快捷。
另外对于定时器方法,也可以很方便的通过单元测试类进行测试。
————————————————
版权声明:本文内容转发自阿里云社区,由阿里云实名注册用户自发贡献!版权归原作者所有。本站不拥有其著作权,亦不承担相应法律责任。如果您发现本文中有涉嫌抄袭的内容,请联系站内客服,本站将立刻删除涉嫌侵权内容。
我有话说: