spring-mvc/springboot使用MockMvc对controller进行测试

 更新时间:2018年11月14日 10:49:57   作者:火光闪耀  
这篇文章主要介绍了spring-mvc/springboot使用MockMvc对controller进行测试,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

网上基本都是参考官方的使用方式,使用了import static,个人感觉这种方式特别不好,代码提示性不友好。所以在此进行说明,也方便自己以后使用。

1. 引入spring-test相关jar包,springboot只需引入spring-boot-starter-test即可

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>

2. 写好controller,开始写test类

import org.front.server.Application;
import org.front.server.web.control.TestController;
import org.hamcrest.Matchers;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.http.MediaType;
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.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;
import org.springframework.web.context.WebApplicationContext;
//网上很多会在这里使用import static,主要导入的是MockMvcRequestBuilders,MockMvcResultMatchers,Matchers这三个类中的方法。
/**
 * @author zz
 * @date 2017年7月4日
 * 
 */
@RunWith(SpringJUnit4ClassRunner.class)
//@SpringApplicationConfiguration(classes = MockServletContext.class)//这个测试单个controller,不建议使用
@SpringApplicationConfiguration(classes = Application.class)//这里的Application是springboot的启动类名。
@WebAppConfiguration
public class ApplicationTests {
  @Autowired
  private WebApplicationContext context;
  private MockMvc mvc;
  
  @Before
  public void setUp() throws Exception {
 //    mvc = MockMvcBuilders.standaloneSetup(new TestController()).build();
    mvc = MockMvcBuilders.webAppContextSetup(context).build();//建议使用这种
  }
  @Test
  public void test1() throws Exception {
    mvc.perform(MockMvcRequestBuilders.get("/data/getMarkers")
        .contentType(MediaType.APPLICATION_JSON_UTF8)
        .param("lat", "123.123").param("lon", "456.456")
        .accept(MediaType.APPLICATION_JSON))
        .andExpect(MockMvcResultMatchers.status().isOk())
        .andDo(MockMvcResultHandlers.print())
        .andExpect(MockMvcResultMatchers.content().string(Matchers.containsString("SUCCESS")));
    
  }
}

相信这样,基本开发过javaweb的就都能看懂了。通过方法的字面意思应该都能看懂方法含义,如果实在不懂请看源码或者官方API。

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

相关文章

  • Java和c语言随机数Random代码详细

    Java和c语言随机数Random代码详细

    这篇文章主要介绍Java和c语言得随机数Random,随机数的用处在生活中比较少见,但是用处并不少,比如一些小游戏的制作等等。下面我们就一起来学习这篇关于Java和c随机数Random得文章吧
    2021-10-10
  • java基础之字符串编码知识点总结

    java基础之字符串编码知识点总结

    这篇文章主要介绍了java基础之字符串编码总结,文中有非常详细的代码示例,对正在学习java基础的小伙伴们有很好的帮助,要的朋友可以参考下
    2021-04-04
  • intellij idea如何配置网络代理

    intellij idea如何配置网络代理

    intellij idea所在的这台电脑本身上不了网,要通过代理上网,那么intellij idea怎么设置代理上网呢?今天通过本文给大家分享intellij idea如何配置网络代理,感兴趣的朋友一起看看吧
    2023-10-10
  • 基于Scala和Java方法的相互调用

    基于Scala和Java方法的相互调用

    这篇文章主要介绍了Scala和Java方法的相互调用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • JAVA生成pdf文件的实操指南

    JAVA生成pdf文件的实操指南

    最近项目需要实现PDF下载的功能,由于没有这方面的经验,从网上花了很长时间才找到相关的资料,下面这篇文章主要给大家介绍了关于JAVA生成pdf文件的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-10-10
  • Java使用wait() notify()方法操作共享资源详解

    Java使用wait() notify()方法操作共享资源详解

    这篇文章主要为大家详细介绍了Java使用wait() notify()方法操作共享资源,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • Java使用JDBC连接Oracle_MSSQL实例代码

    Java使用JDBC连接Oracle_MSSQL实例代码

    这篇文章主要介绍了Java使用JDBC连接Oracle_MSSQL实例代码,需要的朋友可以参考下
    2014-01-01
  • JAVA 深层拷贝 DeepCopy的使用详解

    JAVA 深层拷贝 DeepCopy的使用详解

    最近需要用到比较两个对象属性的变化,其中一个是oldObj,另外一个是newObj,oldObj是newObj的前一个状态,所以需要在newObj的某个状态时,复制一个一样的对象,由于JAVA不支持深层拷贝,因此专门写了一个方法
    2013-07-07
  • springboot热部署知识点总结

    springboot热部署知识点总结

    在本篇文章里小编给大家整理了关于springboot热部署的知识点内容,有兴趣的朋友们参考学习下。
    2019-06-06
  • Java中实现String字符串分割的3种方法

    Java中实现String字符串分割的3种方法

    这篇文章主要介绍了Java中实现String字符串分割的3种方法,文章底部介绍了JAVA 截取字符串的三种方法subString,StringUtils,split,本文结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-05-05

最新评论