分析MockHttpServletRequestBuilder中content和param的区别

在构建Spring测试的自动测试平台时,遇到MockHttpServletRequestBuilder使用问题。当使用content和param设置请求参数时,发现body内的form数据无法通过`request.getParameter()`获取。经源码分析,MockHttpServletRequestBuilder的`buildRequest`方法只将URL参数和`param`添加到parameter中,而content内容未被解析。MockHttpServletRequest的`getParameter`方法是从parameter map中读取,导致body内的参数无法获取。
摘要由CSDN通过智能技术生成

最近在做一个自动测试的平台,使用的是Spring的自带测试库。如何使用,这里不再说了,网上有很多,推荐开涛写的博客

我的主要测试代码:

//主要构造mock请求类,可以不用看
try {
            for(TestClass tmpClass:classes){
                List<TestUrl> urls = tmpClass.getUrls();
                for(TestUrl url:urls){
                    String urlString = url.getCompositeUrl();

                    MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get(urlString);
                    initRequestParams(requestBuilder,url);
                    mockMvc.perform(requestBuilder).andDo(MockMvcResultHandlers.print());
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

//初始化request参数
private void initRequestParams(MockHttpServletRequestBuilder builder,TestUrl url) {
        //设置编码格式
        builder.characterEncoding("utf-8");
        TestParameter parameter = url.getParamter();
        TestContent content = url.getContent();
        TestSession sessionData = url.getSession();

        //添加session
        if(sessionData != null){
            MockHttpSession mockHttpSession = new MockHttpSession()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值