目前有个保存接口有问题,前端双击保存调用两次接口,而生成ID策略是时间戳,这样并发情况下导致重复,

于是想自己写一个单元测试类,调用controller接口。在网上找了好几个也不行,后来经过摸索,已实现,亲测有效。

之前好多都是这样的

    private MockMvc mockMvc;@Autowiredprivate WebApplicationContext webApplicationContext;@Beforepublic void setUp() throws Exception{//MockMvcBuilders.webAppContextSetup(WebApplicationContext context):指定WebApplicationContext,将会从该上下文获取相应的控制器并得到相应的MockMvc;mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();//建议使用这种
    }@Test  。。。。。。

但是试了之后并没有效果,而且经测试 :

mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();//建议使用这种这行代码完全不需要下面是我的代码:
/*** @author chichenglong* @date 2019/6/14 10:29*/
@RunWith(SpringRunner.class)
@SpringBootTest
@WebAppConfiguration
@AutoConfigureMockMvc
public class ProjectRecipeControllerTest {@Autowiredprivate MockMvc mockMvc;//    @Autowired
//    private WebApplicationContext webApplicationContext;
//
//    @Before
//    public void setUp() throws Exception{
//        //MockMvcBuilders.webAppContextSetup(WebApplicationContext context):指定WebApplicationContext,将会从该上下文获取相应的控制器并得到相应的MockMvc;
//        mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();//建议使用这种
//    }
    @Testpublic void save() throws Exception{ProjectRecipeVo vo = new ProjectRecipeVo();ProjectRecipeDTO dto = new ProjectRecipeDTO();dto.setPatientNumber("1234564564");dto.setPatientId("YYHZ20190612LEEB");vo.setProjectRecipeDTO(dto);MvcResult mvcResult=mockMvc.perform(MockMvcRequestBuilders.post("/projectRecipe/save").content(FastJsonUtil.toJSONString(vo))).andReturn();int status=mvcResult.getResponse().getStatus();String content =mvcResult.getResponse().getContentAsString();
//        Assert.assertEquals(200,status);
//        Assert.assertEquals("success",content);MvcResult mvcResultSecond=mockMvc.perform(MockMvcRequestBuilders.post("/projectRecipe/save").content(FastJsonUtil.toJSONString(vo))).andReturn();}
}

重点注意下,@RunWith(SpringRunner.class)这个注释一定要有,因为调用controller方法需要重启一个controller,要运行,就需要一个端口,这个可以随机开启一个端口供测试用。

转载于:https://www.cnblogs.com/deyujincheng/p/11022823.html

springboot单元测试通过MockMvc类调用controller接口相关推荐

  1. SpringBoot单元测试:MockMvc的自动配置

    MockMvc 的自动配置 上面我们提到@AutoConfigureMockMvc 提供了自动配置 MockMvc 的功能,实例化MockMvc 的 具 体 代 码 在 spring-boot-tes ...

  2. 如何调用封装工具类调用网上接口查询工作日

    如何调用封装工具类调用网上接口查询工作日 这里的编辑器是STS,用的springboot集成环境: 先引进pom.xml依赖包 <?xml version="1.0" enc ...

  3. WebService工具类调用远程接口服务时java.io.IOException: Server returned HTTP response code: 500 for URL XXX

    问题描述:在本地测试时,使用个人封装的Webservice代码工具类调用远程接口服务时,一切正常.但是一旦将该代码放到一个已有项目的中使用时,就会出现如下所示的错误提示 java.io.IOExcep ...

  4. http工具类,调用第三方接口

    6月份加入fw做开发,接到了个需求,要使用http工具类调用第三方接口,在网上也找了很多http工具类,但是都不满足我的需求:要么是只传递url和一个参数,要么是传递url和一个map集合: 我想要的 ...

  5. 使用 @MockBean 和 @SpyBean 解决 SpringBoot 单元测试中 Mock 类装配的问题

    最近在做某个项目的时候一直使用 @MockBean 来解决单元测试中 Mock 类装配到被测试类的问题.这篇文章主要介绍了 @MockBean 的使用例子以及不使用 @MockBean 而使用@Spy ...

  6. SpringBoot项目使用JCO实现调用SAP接口实例

    一.JCO接口介绍 JCO采用的是中间式接口,即外部系统将SAP系统所需的信息生成中间数据表,SAP系统直接读取中间文件或将中间表中的信息写入数据库中,中间式接口是比较常用的一种方式,这种方式外部系统 ...

  7. SpringBoot(32) 整合Forest实现调用第三方接口

    一.前言 Forest是什么? Forest是一个高层的.极简的轻量级 HTTP调用API框架,让Java发送HTTP/HTTPS请求不再难.它比OkHttp和HttpClient更高层,比Feign ...

  8. springboot 多个sevice类实现同一接口的调用

    参考页面:http://blog.csdn.net/xiao190128/article/details/54890759/:感谢分享 service  是有用的相当于 xml配置中得bean  id ...

  9. springBoot整合Ehcache——工具类调用

    项目需求要缓存常用数据,整合Ehcache实现,结果@Cacheable注解怎么都不管用,网上找了很多资料各种试各种不行,无奈!只好写个工具类使用. 一.pom.xml配置 <dependenc ...

最新文章

  1. 魔术索引(返回索引值最小的一个)
  2. 用python画梵高星空-谷歌AI:推进实例级别识别 (ILR)研究
  3. html文件头部固定代码
  4. ar软件测试工具_如何为用户测试制作快速的AR原型
  5. html试题及答案,HTML试题及答案
  6. 学习使用资源文件[2] - Ico
  7. win7系统丢失文件的处理方法
  8. Django Bootstrap开发笔记02 - 模板
  9. 二维数组 赋值_数组,及二维数组
  10. OFFICE EXCEL表格中让A1 中的数字为变量时,如何引用
  11. 未使用的分配java,最近最久未使用页面淘汰算法———LRU算法(java实现)
  12. python kafka kerberos 验证 消费 生产
  13. 拓端tecdat|Python贝叶斯推断Metropolis-Hastings(M-H)MCMC采样算法的实现
  14. date在java的那个包_Java—包装类、Date和SimpleDateFormat、Calendar类
  15. maven下手动导入ojdbc6.jar
  16. keil5兼容keil4操作
  17. Windows系统保存电脑当前桌面壁纸图片
  18. 使用TTP223触摸传感器和Arduino UNO开发板实现触摸控制灯泡
  19. linux 5g,5G的时隙配置
  20. 树莓派更改WiFi信息

热门文章

  1. 6.STM32外设函数分类
  2. LeetCode 2 两数相加(链表)
  3. 「周末观赛指南」澳网新王当立?勇士冲击十连胜
  4. Kubernetes网络一年发展动态与未来趋势
  5. lighttpd防御 Slow HTTP Denial of Service Attack 解决办法
  6. 在lamp环境实现nfs中的wordpress使用
  7. 【编译打包】twemproxy-0.4.0-2.el7.centos.src.rpm
  8. SSL与HTTPS,HTTP有什么联系
  9. DOS命令行中用MAVEN构建Java和Java Web项目
  10. 技术久了,偶尔放松下吧,看看这些小样,很美好!