使用@SpringBootTest注解进行单元测试

2025-05-29 0 64

概述

@SpringBootTest注解是SpringBoot自1.4.0版本开始引入的一个用于测试的注解。基本用法如下:

1. 添加Maven依赖

?

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
<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

</properties>

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>1.5.6.RELEASE</version>

</parent>

<dependencies>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

</dependency>

</dependencies>

<build>

<plugins>

<plugin>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-maven-plugin</artifactId>

</plugin>

</plugins>

</build>

2. 编写启动入口类

?

1

2

3

4

5

6
@SpringBootApplication

public class StartUpApplication {

public static void main(String[] args) {

SpringApplication.run(StartUpApplication.class, args);

}

}

3. 编写Controller类

?

1

2

3

4

5

6

7

8

9

10

11

12

13
@RestController

public class HelloController {

@RequestMapping("/")

public String index() {

return "Hello Spring Boot,Index!";

}

@RequestMapping(value = "/test", method = RequestMethod.GET)

public String test() {

return "Spring Boot Test Demo!";

}

}

4. 编写测试类

?

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

33
@RunWith(SpringRunner.class)

@SpringBootTest(classes = StartUpApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)

public class HelloControllerTest {

/**

* @LocalServerPort 提供了 @Value("${local.server.port}") 的代替

*/

@LocalServerPort

private int port;

private URL base;

@Autowired

private TestRestTemplate restTemplate;

@Before

public void setUp() throws Exception {

String url = String.format("http://localhost:%d/", port);

System.out.println(String.format("port is : [%d]", port));

this.base = new URL(url);

}

/**

* 向"/test"地址发送请求,并打印返回结果

* @throws Exception

*/

@Test

public void test1() throws Exception {

ResponseEntity<String> response = this.restTemplate.getForEntity(

this.base.toString() + "/test", String.class, "");

System.out.println(String.format("测试结果为:%s", response.getBody()));

}

其中,classes属性指定启动类,SpringBootTest.WebEnvironment.RANDOM_PORT经常和测试类中@LocalServerPort一起在注入属性时使用。会随机生成一个端口号。

总结

我们发现,随着Spring boot 版本的提升,单元测试变得更简单了。

到此这篇关于使用@SpringBootTest注解进行单元测试的文章就介绍到这了,更多相关@SpringBootTest 单元测试内容请搜索快网idc以前的文章或继续浏览下面的相关文章希望大家以后多多支持快网idc!

原文链接:https://blog.csdn.net/limenghua9112/article/details/79694849

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 使用@SpringBootTest注解进行单元测试 https://www.kuaiidc.com/116886.html

相关文章

发表评论
暂无评论