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层进行测试,可以直接通过测试类发起,相较于通过控制层发起,更加简便快捷。
另外对于定时器方法,也可以很方便的通过单元测试类进行测试。
————————————————
版权声明:本文为CSDN博主「熊猫大哥大」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/woshisangsang/article/details/118768580