当前位置: 首页 > news >正文

重庆巫山网站设计公司农村自建房设计图一层半

重庆巫山网站设计公司,农村自建房设计图一层半,八里河风景区网站建设内容摘要,wordpress页面布置文章目录 基础基础概念Mockxxx一般实现文件位置 实战MockMvc与Test注解不兼容RequestParams参数RequestBody参数 基础 基础概念 定义#xff1a;是Spring框架提供的一种用于测试Spring MVC控制器的工具#xff0c;它允许开发者在不启动完整的web服务器的情况下#xff0c;… 文章目录 基础基础概念Mockxxx一般实现文件位置 实战MockMvc与Test注解不兼容RequestParams参数RequestBody参数 基础 基础概念 定义是Spring框架提供的一种用于测试Spring MVC控制器的工具它允许开发者在不启动完整的web服务器的情况下模拟HTTP请求并验证响应。优点执行速度快 --》 不需要启动web服务器便于集成 --》 可以与Junit、TestNG等测试框架无缝衔接强大的功能 --》 对HTTP请求的详细配置和响应的全面验证依赖配置 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope /dependency Mockxxx MockMvc:来自于import org.springframework.test.web.servlet.MockMvc;定义是Spring Test模块的一部分它允许开发者对Spring MVC控制器进行单元测试而无需启动完整的Web服务器通过MockMvc可以模拟HTTP请求并验证响应使得测试执行速度更快同时便于与JUnit、TestNG等测试框架集成。使用使用mockMvc。perform()模拟HTTP请求使用.andExpect()和.andReturn()等方法进行响应验证。Mockito:来自于:import org.mockito.Mockito;定义流行的Java单元测试框架专门用于创建和验证模拟对象的行为。它允许开发者在编写测试时模拟外部依赖从而使得测试更便捷减少对外部类、系统和依赖给单元测试带来的耦合。特点行为验证、测试桩、参数匹配器、注册支持、监控真实对象、重置mock对象MvcResult来自于import org.springframework.test.web.servlet.MvcResult;定义是在执行模拟HTTP请求以测试控制器Controller层功能时的重要概念它代表一个完整的HTTP响应结果包括响应的状态码、头信息、响应体以及任何可能产生的错误等。作用封装HTTP响应 -》封装由模拟的HTTP产生的完整响应信息获取响应细节 -》包括响应的状态码、头信息、响应体等内容断言测试 -》 使用MvcResult中的方法进行断言确保控制器返回正确的HTTP状态码和数据 一般实现 // 类注解用于配置 JUnit 5 测试类以使用 Spring 的测试支持。 ExtendWith(SpringExtension.class)// 是一个 Spring Boot 提供的注解用于对 Web 层即控制器层进行测试。如果使用该注解那么Spring Boot 会自动配置一个模拟的 Spring MVC 环境这样就可以在不启动完整应用的情况下测试控制器的行为。 WebMvcTest(value {Controller.class, Handler.class})// 完成bean自动装配 Autowired private MockMvc mockMvc// 标识测试方法 Test MockHttpServletRequestBuilder requestBuilder get(控制类路径/xxx/xxx); // MockHttpServletRequestBuilder 是一个用于构建模拟HTTP请求的工具类。 // 主要在单元测试和集成测试中使用构造出特定的HTTP请求来测试控制器Controller或端点Endpoint。 requestBuilder.param(参数名, 参数值); // 给已创建的mockhttpservletrequestbuilder实例添加查询参数 // 将参数通过键值对的形式填入MockHttpServletRequestBuilder对象中mockMvc.perform(requestBuilder) // mockMvc对象执行之前定义的requestbuiler对象.andExpect(status().isOk()) // 该调用方式是链式调用--》 用于检查HTTP响应的状态码是否是200.andDo(new ResultHandler() { // 自定义处理MvcResult对象即模拟请求后的结果Overridepublic void handle(MvcResult mvcResult) throws Exception {// 获取响应体并将其转化为字符串类型String content mvcResult.getResponse().getContentAsString();// 检查响应体是否为空以确保有数据返回assertTrue(StringUtils.isNotBlank(content));// 将响应体内容解析成map集合MapString, String resp JSONUtils.toMap(content);// 验证code/message 两个属性的值是否等于1/successassertEquals(1, resp.get(code));assertEquals(success, resp.get(message));// 获取data属性对应的值String data resp.get(data);// base64解码byte[] encryptedData Base64.decode(data);// aes密钥生成AES aes genAES(keyIv);// 解密data对应的值String json new String(aes.decrypt(encryptedData), StandardCharsets.UTF_8);// json format is ResponseKeyCollection 自定义的一个类ResponseKeyCollection collection JSONUtils.toObject(json, ResponseKeyCollection.class);// 将json转成 ResponseKeyCollection对象assertEquals(10, collection.getResponseKeys().size());// 验证对象中getResponseKeys方法返回的集合大小是否为10}});BeforeEach ResponseKey responseKey1 COLLECTION.getResponseKeys().stream().filter(key - key.getIndex() 1).findFirst().orElse(null); // COLLECTION获取ResponseKeys属性--》转换为流--》过滤出index1的responseKey对象 // --》查找第一个满足条件的--》有则返回无则返回null // COLLECTION 是自定义的对象 Mockito.when(keyStoreService.getResponseKey(1)).thenReturn(responseKey1); // 模拟该方法当此入参为1时则返回上述找到的对象 Mockito.when(keyStoreService.generateResponseKeyCollection(10)).thenReturn(COLLECTION); // 模拟该方法当此入参为10时则返回Collecion对象 Mockito.when(keyHelper.isExpiredKeyIndex(anyInt())).thenReturn(false); // 模拟此方法不管该方法入参为谁都返回false --》 即keyIndex永不过期文件位置 与项目目录保持一致 假设项目文件为src/main/java/xxx/controller/xxxController 测试类项目文件为src/test/java/xxx/controller/xxxTest实战 MockMvc与Test注解不兼容 参考博客https://segmentfault.com/q/1010000042943340 描述使用 Autowiredprivate MockMvc mockMvc;总是导致注入的mockMvc失败 原因是MockMvc与Test不兼容的问题原本依赖库为org.junit.Test 改成org.junit.jupiter.api.Test 就可以了两个依赖库之间的关系为org.junit.Test --》 JUnit4 org.junit.jupiter.api.Test --》 JUnit5RequestParams参数 MockHttpServletRequestBuilder requestBuilder get(/decrypt); requestBuilder.param(id1, id1); requestBuilder.param(id2, id2); mockMvc.perform(requestBuilder).andExpect(status().isOk()).andDo(mvcResult - {String content mvcResult.getResponse().getContentAsString(); });RequestBody参数 接口请求参数 RequestMapping(/getfunction1) public ResultDtoRisk riskGetTokenByph(HttpServletRequest request, RequestBody NumReq numReq){}测试代码 Autowired pivate MockMvc mockMvc; // import org.springframework.test.web.servlet.MockMvc;NumReq numReq new NumReq(); numReq.setId1(id1); numReq.setId2(id2);MockHttpServletRequestBuilder requestBuilder get(/getfunction1); // import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; String requestBodyContent objectMapper.writeValueAsString(numReq);requestBuilder.contentType(MediaType.APPLICATION_JSON_VALUE).content(requestBodyContent);mockMvc.perform(requestBuilder).andExpect(status().isOk()).andDo(print());
http://www.hkea.cn/news/14448891/

相关文章:

  • 营销策划方案ppt汕头网络推广seo渠道
  • 做用户名和密码网站页面直播app定制开发
  • 常州市做网站的公司做视频网站设备需求
  • 网站建设流程图片做网站服务怎么赚钱
  • 网站无后台可以上框架关于建设校园网站申请
  • 华侨大学英文网站建设工作压力大怎样缓解焦虑情绪
  • 西安网站seo服务开发公司楼盘项目管理费合同
  • 代理推广seo怎么去优化网站
  • 浙江建设监理协会官方网站秦皇岛网站搜索优化
  • 电商网站开发经验建筑人才网有哪些
  • php网站开发需求文档网站如何做伪静态
  • 域名访问网站啥意思公司网站百度小程序开发
  • 成都人才网站建设学动漫设计有前途吗
  • 代理网站建设wordpress修改鼠标
  • o2o手机网站建设技术网页转app工具
  • 蒲城县住房和城乡建设局网站网站内容与模板设计
  • 聚牛网站建设公司海宁建设局网站
  • 把网站做成静态页面智能展厅展馆建设
  • 宣传京津风筝网站的建设目的网站建设 中企动力南通
  • 东莞市做阀门的网站深圳商场设计公司排名
  • 移动网站开发教学大纲无锡网站建设服务
  • 网站建设之织梦模板自学网站建设看什么书
  • 电商设计网站有哪些内容商城源码免费
  • 哪类网站赚钱 优帮云网站建设与管理的总结
  • 上海市做网站网站建设费用的会计分录
  • 网站开发用盗版犯法阿里云域名注册万网
  • 万网怎样做网站调试大连城市建设网站
  • 装修公司网站要给公司做一个网站怎么做的
  • 百度文库怎么做网站排名wordpress 自适应
  • 天津网站开发价格小吃加盟网站大全