美文网首页SpringBoot之路Java学习笔记Spring Boot
Spring Boot之路[5]--基础单元测试

Spring Boot之路[5]--基础单元测试

作者: BeeNoisy | 来源:发表于2016-08-30 18:56 被阅读1581次

    专题简介

    SpringBoot之路专题是一个记录本人在使用Spring和SpringBoot相关技术中所遇到的问题和要解决的问题。每用到一处知识点,就会把这处知识补充到Github一个对应的分支上。会以专题的方式,力争每一篇博客,由浅入深,把每个知识点讲解到实战级别,并且分析Spring源码。整个项目会以一个开发一个博客系统为最终目标,每一个分支都记录着一步一步搭建的过程。与大家分享,代码会同步发布到这里

    阅读本片文章大约需要5分钟

    1. 概念

    1. 什么是单元测试
      单元测试,一种基本的软件测试方法。维基百科给出的解释如下:

    在计算机编程中,单元测试(英语:Unit Testing)又称为模块测试, 是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。 程序单元是应用的最小可测试部件。

    1. 应用于什么场景、解决了什么问题
      适用于大型项目,多人开发,有持续集成(CI)的项目。单元测试可以很好的保证项目的稳定性和代码质量。在这里,使用Mock的方式,对相关的api或页面进行单元测试。

    2. 实战

    1. 可运行的代码
    import org.junit.Assert;
    import org.junit.Before;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
    import org.springframework.test.context.web.WebAppConfiguration;
    import org.springframework.test.web.servlet.MockMvc;
    import org.springframework.test.web.servlet.MvcResult;
    import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
    import org.springframework.test.web.servlet.setup.MockMvcBuilders;
    import org.springframework.web.context.WebApplicationContext;
    @SpringBootApplication
    @WebAppConfiguration
    @RunWith(SpringJUnit4ClassRunner.class)// 1
    public class IndexControllerTest {
    
        private MockMvc mockMvc;// 2
    
        @Autowired
        private WebApplicationContext webApplicationContext; // 3
    
        @Before
        public void before() {
            mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build(); // 4
        }
    
        @Test
        public void testIndex() throws Exception {
            MvcResult mvcResult = mockMvc.perform(MockMvcRequestBuilders.get("/")).andReturn(); // 5
    
            int status = mvcResult.getResponse().getStatus(); // 6
            String responseString = mvcResult.getResponse().getContentAsString(); // 7
    
            Assert.assertEquals("return status not equals 200", 200, status); // 8
            Assert.assertEquals("response string not equalse ", "Hello Spring boot", responseString); // 9
        }
    }
    
    1. 代码串讲
      1.引入单元测试相关支持类
      2.声明MockMvc
      3.声明WebApplicationContext
      4.初始化MockMvc
      5.使用MockMvc进行调用
      6.获取Http Status
      7.获得ResponseString
      8.使用断言进行判断
      9.使用断言进行判断
    2. 运行截图
    运行截图,红框中为运行结果

    3. 写在后面

    单元测试是一种保障软件质量的非常重要的方法和手段,大家不要因为时间因素等忽略了单元测试。如果想要代码足够健壮,以后少给自己留坑,建议多重视单元测试。甚至建议大家采用TDD的方式进行开发。

    最后,欢迎大家在github上点Star,项目有更新后,都会第一时间收到通知。代码在这里

    相关文章

      网友评论

        本文标题:Spring Boot之路[5]--基础单元测试

        本文链接:https://www.haomeiwen.com/subject/lfepsttx.html