首页 > 技术文章 > [springboot] 搭建项目及单元测试

hujunhui 2019-07-16 10:38 原文

本文纯属记录自己学习的过程以及相关使用操作,使用工具Idea2018。

 

1.创建项目:

 

-- 目录结构

2.配置文件

 

3.pom文件

4.创建测试类并启动项目

package com.zr.demo.Controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

/**
 * @Author: Hujh
 * @Date: 2019/7/16 9:32
 * @Description: 项目测试控制器
 */
@RestController
@RequestMapping("test")
public class TestController {

    /**
     * @Title: get
     * @Author : Hujh
     * @Date: 2019/7/16 10:10
     * @Description : 测试方法
     * @param :
     * @Return : java.lang.String
     */
    @RequestMapping("get")
    public String get(){
        return "测试返回数据";
    }

    /**
     * @Title: getByParams
     * @Author : Hujh
     * @Date: 2019/7/16 10:11
     * @Description : 测试带参方法
     * @param : id
     * @param : name
     * @Return : java.lang.String
     */
    @RequestMapping("getByParams")
    public String getByParams(@RequestParam Integer id, String name){
        StringBuilder sb = new StringBuilder();
        sb.append(id);
        sb.append("---");
        sb.append(name);
        return sb.toString();
    }
}

5.访问接口,查看返回结果

 

 

进行单元测试:(使用 mockmvc 进行)

 

1.创建测试类

package com.zr.demo;

import com.zr.demo.Controller.TestController;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.client.match.MockRestRequestMatchers;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MockMvcBuilder;
import org.springframework.test.web.servlet.ResultActions;
import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultHandlers;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;

/**
 * @Author: Hujh
 * @Date: 2019/7/16 9:38
 * @Description:
 */
@RunWith(SpringRunner.class)
@org.springframework.boot.test.context.SpringBootTest
public class SpringBootTest {

    private Logger logger = LoggerFactory.getLogger(SpringBootTest.class);

    private MockMvc mockMvc;

    @Autowired
    private TestController testController;

    @Before
    public void setUp(){
        logger.info("------初始化执行");
        mockMvc = MockMvcBuilders.standaloneSetup(testController).build();
    }

    /**
     * @Title: test
     * @Author : Hujh
     * @Date: 2019/7/16 9:46
     * @Description : 测试方法
     * @param :
     * @Return : void
     */
    @Test
    public void test() throws Exception {
        MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/test/getByParams")
                .accept(MediaType.APPLICATION_JSON,MediaType.APPLICATION_JSON_UTF8)//请求数据格式
                .contentType(MediaType.APPLICATION_JSON)//接受所用数据格式
                .param("id","123")
                .param("name","小张三");

        // 执行请求
        ResultActions result = mockMvc.perform(requestBuilder);

        //结果解析
        result.andExpect(MockMvcResultMatchers.status().isOk()) // 执行状态
//                .andExpect(MockMvcResultMatchers.jsonPath("name").value("张三")) //期望值
                .andDo(MockMvcResultHandlers.print()) // 打印
                .andReturn(); // 返回
    }

}

 

 2.启动test方法,查看返回结果

 

 

总结

使用 Spring Boot 可以非常方便、快速搭建项目,使我们不用关心框架之间的兼容性,适用版本等各种问题,我们想使用任何东西,仅仅添加一个配置就可以,所以使用 Spring Boot 非常适合构建微服务。

 

推荐阅读