[Spring]~@SpringBootTest(单元测试)

[Spring]~@SpringBootTest(单元测试)1.添加Maven依赖<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><parent><groupId>org.springfram…

大家好,又见面了,我是你们的朋友全栈君。

1. 添加Maven依赖

<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. 编写启动入口类

    @SpringBootApplication
    public class StartUpApplication { 
       
        public static void main(String[] args) {
            SpringApplication.run(StartUpApplication.class, args);
        }
    }
     
     
     

      3. 编写Controller类

      @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. 编写测试

        @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 版本的提升,单元测试变得更简单了。

          版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

          发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/139661.html原文链接:https://javaforall.net

          (0)
          全栈程序员-站长的头像全栈程序员-站长


          相关推荐

          • 字符函数和字符串函数_字符串复制函数

            字符函数和字符串函数_字符串复制函数/**原型:char*strncat(char*dest,constchar*src,size_tn);*用法:#include<string.h>*功能:把src所指字符

            2022年8月4日
            9
          • matplotlib绘图基础[通俗易懂]

            matplotlib绘图基础[通俗易懂]http://blog.csdn.net/pipisorry/article/details/37742423matplotlib介绍matplotlib是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。它的文档相当完备,并且Gallery页面中有上百幅缩略图,打开之后都

            2022年5月24日
            46
          • 如何修改用户名linux_linux修改hostname

            如何修改用户名linux_linux修改hostnameLinux下如何修改用户名(同时修改用户组名和家目录)有时候,由于某些原因,我们可能会需要重命名用户名。我们可以很容易地修改用户名以及对应的家目录和UID。本教程将会讨论这些东西。让我们先从修改用户名开始。修改用户名我们使用usermod来修改用户名。其语法为,$…在linux中如何增加修改删除暂停和冻结用户名在linux中,如何增加、修改、删除、暂停和冻结用户名在linux…

            2025年12月8日
            6
          • 电脑磁盘未知没有初始化_win7怎么进去计算机管理

            电脑磁盘未知没有初始化_win7怎么进去计算机管理win7系统想必大家都非常熟悉吧,然而有时候可能会碰到win7系统电脑新增的硬盘没有初始化的情况,想必大家都遇到过win7系统电脑新增的硬盘没有初始化的情况吧,那么应该怎么处理win7系统电脑新增的硬盘没有初始化呢?我们依照  1、当正常增加新硬盘后,登录系统,打开磁盘管理,系统会自动打开【磁盘初始化和转换向导】,单击“下一步”; 2、正确选择要初始化的磁盘,单击“下一步”;这样的步骤就行了;下…

            2022年9月21日
            4
          • FPGA实现CAN接口(SJA1000)

            FPGA实现CAN接口(SJA1000)学无止境,善于积累,每天积累一点点,成功就在眼前,加油!1CAN总线简介CAN(ControllerAreaNetwork,控制器局域网)总线是一个多主机异步串行总线,也是国际上应用最广泛的现场总线之一。在现场总线中,它是惟一被ISO国际标准化组织批准的现场总线。由于其成本低、容错能力强、支持分布式控制、通信速率高等优点在汽车、工业控制、航天等领域得到广泛应用。特别是由于CAN总线具有…

            2022年6月29日
            39
          • 打开redis远程访问端口_linux端口开放命令

            打开redis远程访问端口_linux端口开放命令一、问题详情最近我在阿里云ESC上购买了一台服务器,但是在安装完redis后,我在本地的电脑上怎么也没法调用这台服务器上面的redis服务。最后,我终于解决了,所以来记录一下。二、解决方案想要解决这个问题,前提条件是已经在阿里云的安全组设置里面已经开放了3679这个端口。接着我们要修改两个配置文件。redis.conf尽量将最初始的redis.conf复制一份,防止以后修改该配置文件出现问题。 执行修改配置文件的命令 vim/opt/myRedis/redis.co

            2025年11月24日
            3

          发表回复

          您的邮箱地址不会被公开。 必填项已用 * 标注

          关注全栈程序员社区公众号