详解SpringBoot restful api的单元测试

 更新时间:2017年09月11日 09:56:19   作者:Meet相识_bfa5  
本篇文章主要介绍了详解SpringBoot restful api的单元测试,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

现在我们来利用Spring Boot来构建一个RestFul API,具体如下:

1.添加Springboot测试注解

@RunWith(SpringRunner.class)
@SpringBootTest
public class UserControllerTest {
}

2.伪造mvc环境

 // 注入Spring 工厂
  @Autowired
  private WebApplicationContext wac;
 //伪造mvc环境
  private MockMvc mockMvc;
  @Before
  public void setup(){
    mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();
  }

3.引入静态方法

import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

3.编写测试方法

@Test
  public void whenXXXXSuccess() throws Exception {
    //模拟发送请求
    String result =
    mockMvc.perform(get("/user") //发往/user的get请求,可以换成post,put,delete方法执行相应请求
            .param("username","xxx") //get请求时填写参数的位置
            .contentType(MediaType.APPLICATION_JSON_UTF8) //utf编码
            .content(content)) //post和put请求填写参数的位置
        .andExpect(status().isOk())
        .andExpect(jsonPath("$.length()").value(3)) //期望的json返回结果
        .andReturn().getResponse().getContentAsString(); //对返回字符串的json内容进行判断
    log.info(result);
  }

这里是具体的jsonpath语法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Spring Boot对Future模式的支持详解

    Spring Boot对Future模式的支持详解

    这篇文章主要给大家介绍了关于Spring Boot对Future模式的支持的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用spring boot具有一定的参考学习价值,需要的朋友们下面来一起看看吧
    2019-01-01
  • java启动参数之谜的排查过程

    java启动参数之谜的排查过程

    在日常操作中,相信很多人对Java启动参数存在疑惑,下面这篇文章主要给大家介绍了关于java启动参数之谜的排查过程,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • IDEA 插件 mapper和xml互相跳转操作

    IDEA 插件 mapper和xml互相跳转操作

    这篇文章主要介绍了IDEA 插件 mapper和xml互相跳转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • mybatis,foreach,找不到参数报错问题及解决

    mybatis,foreach,找不到参数报错问题及解决

    这篇文章主要介绍了mybatis,foreach,找不到参数报错问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • 如何解决SpringBoot启动时无法加载配置文件或环境变量问题

    如何解决SpringBoot启动时无法加载配置文件或环境变量问题

    文章主要介绍了在Spring Boot项目中遇到配置文件加载失败和资源目录图标异常的问题,并提供了详细的解决步骤,解决方法包括在pom.xml文件中添加特定配置,确保资源目录顺序正确,以及注意节点的正确使用,通过这些步骤,可以有效解决资源加载问题,提高开发效率
    2024-12-12
  • Java中Map和Set的常见用法举例

    Java中Map和Set的常见用法举例

    Map和Set是一种专门用来进行搜索的容器或者数据结构,其具体效率与具体的实例化子类有关,下面这篇文章主要给大家介绍了关于Java中Map和Set的常见用法,需要的朋友可以参考下
    2024-04-04
  • 使用Spring Security和JWT实现安全认证机制

    使用Spring Security和JWT实现安全认证机制

    在现代 Web 应用中,安全认证和授权是保障数据安全和用户隐私的核心机制,Spring Security 是 Spring 框架下专为安全设计的模块,具有高度的可配置性和扩展性,而 JWT则是当前流行的认证解决方案,所以本文介绍了如何使用Spring Security和JWT实现安全认证机制
    2024-11-11
  • Mybatis中xml的动态sql实现示例

    Mybatis中xml的动态sql实现示例

    本文主要介绍了Mybatis中xml的动态sql实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • Java注解详解及实现自定义注解的方法

    Java注解详解及实现自定义注解的方法

    这篇文章主要介绍了Java注解详解及实现自定义注解的方法,本文给大家介绍了jdk中预定义的一些注解及自定义注解的相关知识,需要的朋友可以参考下
    2022-06-06
  • Java Thread之Sleep()使用方法总结

    Java Thread之Sleep()使用方法总结

    这篇文章主要介绍了Java Thread之Sleep()使用方法总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05

最新评论