mockMvc

mockMvc1.为什么使用mockMvc。对模块进行集成测试时,希望能够通过输入url对controller进行测试。如果通过启动服务器,建立httpclient进行测试,这样会使得测试变得很麻烦(1.启动速度慢,2.测试验证不方便,3.依赖网络环境)2.测试逻辑1、MockMvcBuilder构造MockMvc的构造器2、mockMvc.perform执行一个请…

1.为什么使用mockMvc。
    对模块进行集成测试时,希望能够通过输入url对controller进行测试。如果通过启动服务器,建立http client进行测试,这样会使得测试变得很麻烦
(1.启动速度慢,2.测试验证不方便,3.依赖网络环境)
2.测试逻辑
   1、 MockMvcBuilder构造MockMvc的构造器
    2、mockMvc.perform执行一个请求。
    3、MockMvcRequestBuilders.get(“XXX”)构造一个请求。
    4、ResultActions.param添加请求传值
    5、ResultActions.accept(MediaType.TEXT_HTML_VALUE))设置返回类型
    6、ResultActions.andExpect添加执行完成后的断言。
    7、ResultActions.andDo添加一个结果处理器,表示要对结果做点什么事情
     * 比如此处使用MockMvcResultHandlers.print()输出整个响应结果信息。
    8、ResultActions.andReturn表示执行完成后返回相应的结果。
3.mockMvcBuilder:
    MockMvc是spring测试下的一个非常好用的类,他们的初始化需要在setUp中进行。
    MockMvcBuilder是用来构造MockMvc的构造器,其主要有两个实现:StandaloneMockMvcBuilder和DefaultMockMvcBuilder,前者继承了后者。
    ① MockMvcBuilders.webAppContextSetup(WebApplicationContext context):指定WebApplicationContext,将会从该上下文获取相应的控制器并得到相应的MockMvc;
    ② MockMvcBuilders.standaloneSetup(Object… controllers):通过参数指定一组控制器,这样就不需要从上下文获取了,比如this.mockMvc = MockMvcBuilders.standaloneSetup(this.controller).build();
4. MockMvcRequestBuilders
    从名字可以看出,RequestBuilder用来构建请求的
    主要API:
    MockHttpServletRequestBuilder get(String urlTemplate, Object… urlVariables):根据uri模板和uri变量值得到一个GET请求方式的RequestBuilder,如果在controller的方法中method选择的是           RequestMethod.GET,那在controllerTest中对应就要使用MockMvcRequestBuilders.get。
    post(String urlTemplate, Object… urlVariables):同get类似,但是是POST方法;
    put(String urlTemplate, Object… urlVariables):同get类似,但是是PUT方法;
    delete(String urlTemplate, Object… urlVariables) :同get类似,但是是DELETE方法;
    options(String urlTemplate, Object… urlVariables):同get类似,但是是OPTIONS方法;
5. ResultActions
    
调用MockMvc.perform(RequestBuilder requestBuilder)后将得到ResultActions,对ResultActions有以下三种处理:
    ResultActions.andExpect:添加执行完成后的断言。添加ResultMatcher验证规则,验证控制器执行完成后结果是否正确;
    ResultActions.andDo:添加一个结果处理器,比如此处使用.andDo(MockMvcResultHandlers.print())输出整个响应结果信息,可以在调试的时候使用。
    ResultActions.andReturn:表示执行完成后返回相应的结果
mockMvc

今天的文章mockMvc分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/6415.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注