spring boot 学习之二(spring boot单元测试)

Posted 酒皇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring boot 学习之二(spring boot单元测试)相关的知识,希望对你有一定的参考价值。

这章其实挺简单,我单独拉出来是因为部分人的测试项目我并不可以用,所以单独拉出来作为重点,因为单元测试在我们开发中非常重要

第一步 添加测试依赖

srpingboot的单元测试非常简单,我们需要添加如下依赖

 <!-- springboot的test依赖 -->
       <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
     </dependency>

第二步添加测试方法

我们创建如下的类,我稍作解释

@RunWith(SpringRunner.class)
@SpringBootTest(classes = HelloApplication.class)
public class HelloTests {
    private MockMvc mvc;
    @Before
    public void setUp() throws Exception {
        mvc = MockMvcBuilders.standaloneSetup(new HelloWorldController()).build();
    }
    @Test
    public void getHello() throws Exception {
mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
                .andExpect(MockMvcResultMatchers.status().isOk()).andDo(MockMvcResultHandlers.print()).andReturn();
    }
}

先从标签说起

@RunWith(SpringRunner.class) 是运行器,运行我们需要启动的SpringRunner.class类
@SpringBootTest(classes = HelloApplication.class) 表示我们需要测试的springboot启动类

@Before 是运行前的一个配置工作
@Test 表示当前测试主方法

大然后说是MockMvc

 MockMvc这个类是用来构建请求的一个类,用来作为我们测试的主要功能
    mvc = MockMvcBuilders.standaloneSetup(new HelloWorldController()).build();
  这段表示建立一个请求类型是针对HelloWorldController的。

mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
                .andExpect(MockMvcResultMatchers.status().isOk()).andDo(MockMvcResultHandlers.print()).andReturn();

  这段表示请求类型,请求路径,接收的消息类型,接收的状态码类型,最后andDo(MockMvcResultHandlers.print()这段表示将结果打印出来

第三步启动项目查看结果

启动测试类的时候并不用启动我们的启动器了,启动测试类会自动启动。然后我们会得到如下信息展示我们这次请求的报文信息

MockHttpServletRequest:
HTTP Method = GET
Request URI = /hello
Parameters = {}
Headers = {Accept=[application/json]}
Body = <no character encoding set>
Session Attrs = {}

Handler:
Type = com.dhh.Controller.HelloWorldController
Method = public java.lang.String com.dhh.Controller.HelloWorldController.helloSpringBoot()

Async:
Async started = false
Async result = null

Resolved Exception:
Type = null

ModelAndView:
View name = null
View = null
Model = null

FlashMap:
Attributes = null

MockHttpServletResponse:
Status = 200
Error message = null
Headers = {Content-Type=[application/json;charset=ISO-8859-1], Content-Length=[28]}
Content type = application/json;charset=ISO-8859-1
Body = hello Spring ddddddddddBoot
Forwarded URL = null
Redirected URL = null
Cookies = []

 

到现在我们的测试就完成了

以上是关于spring boot 学习之二(spring boot单元测试)的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot学习之四Spring Boot事务管理

spring-boot学习之集成mybatis

spring boot 学习之五(日志配置)

Spring Boot学习之五日志管理

Activiti学习之spring boot 与activiti整合

spring boot框架学习之重要注解3注解方式读取外部资源配置文件