[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)
          全栈程序员-站长的头像全栈程序员-站长


          相关推荐

          • 数据结构 哈希表设计

            实验6哈希表设计一、实验目的熟练掌握哈希表的构造方法,深刻理解哈希表与其他结构表的实质性差别。 二、实验内容程序的功能是对一批关键字集合采用除留余数法和线性探测再散列的方法解决冲突来建立相应的哈希表和完成查找过程及平均查找长度的计算。【问题描述】    研究哈希(HAXI)表查找技术的两个重要问题是:构造HAXI函数和处理冲突。现在要求针对某个数据集合中的关键字设

            2022年4月9日
            54
          • Vue中ref和$refs的介绍及使用

            Vue中ref和$refs的介绍及使用在 JavaScript 中需要通过 document querySelecto demo 来获取 dom 节点 然后再获取这个节点的值 在 Vue 中 我们不用获取 dom 节点 元素绑定 ref 之后 直接通过 this refs 即可调用 这样可以减少获取 dom 节点的消耗 ref 介绍 ref 被用来给元素或子组件注册引用信息 引用信息将会注册在父组件的 refs 对象上 如果在普通的 D

            2025年10月19日
            1
          • API之FindWindowEx和SendMessage

            API之FindWindowEx和SendMessage最近在VC6.0开发中碰到了两个函数,经过一番搜索查阅,特记录于此。

            2022年5月27日
            35
          • 上海java培训哪家教育机构比较好_上海it培训机构排名前十

            上海java培训哪家教育机构比较好_上海it培训机构排名前十学习Java编程不在是校内学生们的专利了,随着职场上竞争越来越激烈,毫无基础的或想要转行的求职者对于学习Java的积极性也是越来越高,因此,市面上涌现了大批的成人Java培训机构,为了不让大家纠结,小编花费了一周时间给大家专门整理了上海Java培训机构排名榜单,主要从口碑,师资,专一性,就业率等多方面得出的上海Java培训机构排名,仅供正在选择Java培训机构的小伙们参考。1.上海动力节点评价:动力节点大家学Java的话肯定也都听说过,单科教学,一直是秉承着从学员角度,全心全意保障学员利益.

            2022年10月3日
            2
          • IT公司速查手册!

            IT公司速查手册! http://b1.tooyard.com/

            2022年7月16日
            24
          • Jlink或者stlink用于SWD接口下载程序「建议收藏」

            Jlink或者stlink用于SWD接口下载程序「建议收藏」最近要使用stm32f103c8t6最小系统板,直接ISP串口下载程序太麻烦,就想着使用swd接口来调试。结果:通过SWD接口下载程序成功,但调试失败,还不知原因,会的的人麻烦交流一下。SWD接口:3.3VDIO(数据)CLK(时钟)GND1.首先声明jlink和stlink都有jtag和swd调试功能。jlink接口如下:如图,我使用的就是VCC…

            2022年4月25日
            61

          发表回复

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

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