51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2006|回复: 0
打印 上一主题 下一主题

[转贴] MockMvc 怎么集成测试?

[复制链接]
  • TA的每日心情
    无聊
    前天 09:06
  • 签到天数: 530 天

    连续签到: 2 天

    [LV.9]测试副司令

    跳转到指定楼层
    1#
    发表于 2018-12-19 16:14:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    1. @Before
    2.     public void initTests() throws Exception {
    3.         mvc = MockMvcBuilders.webAppContextSetup(context)
    4.                  .addFilters(springSecurityFilterChain)
    5.                 .build();
    6.         
    7.     }
    8.    
    9.    
    10. @Test

    11.     public void testLogin() throws Exception {
    12.         mvc.perform(post("/login").param("username", "15812345678").param("password", "123456"))
    13.         .andDo(print())
    14.         .andExpect(MockMvcResultMatchers.redirectedUrl("/api/user/list"));
    15.     }
    复制代码

    流程是:

    • 先登陆

    • 取得用户数据


    现在问题是redirectedUrl的action ,我要加入参数进去,才能完成/api/user/list的请求。但是一直都302,说明登陆没通过,求救大神帮帮解答解答呢?

    今天解决了。思路时 在第二个请求中放入session 。这样就不会出现被登陆请求拦截问题了。到此位置,mockmvc ,集成完一个业务流程的测试,爽啊


    代码如下

    1. @Before
    2.     public void initTests() throws Exception {
    3.         mvc = MockMvcBuilders.webAppContextSetup(context).addFilters(springSecurityFilterChain).build();
    4.         session = (MockHttpSession) mvc.perform(post("/login")
    5.                 .param("username", "15812345678")
    6.                 .param("password","e10adc3949ba59abbe56e057f20f883e"))
    7.                 .andReturn().getRequest().getSession();;
    8.     }
    9.    
    10.    
    11.    
    12.     @Test
    13.     public void testDownSummary() throws Exception {
    14.         List<LoanProgress> loanProgress = new ArrayList<>();
    15.         LoanProgress l1 = new LoanProgress();
    16.         l1.setApplyNo("RZ000001");
    17.         l1.setRateHighest(0.12);
    18.         LoanProgress l2 = new LoanProgress();
    19.         l2.setApplyNo("RZ000002");
    20.         l2.setRateHighest(0.12);
    21.         loanProgress.add(l1);
    22.         loanProgress.add(l2);
    23.         
    24.         String jsonArray = JSONObject.toJSONString(loanProgress);
    25.         logger.debug(jsonArray);
    26.         mvc.perform(get("/api/loanProgress/accept")
    27.                 .session(session)
    28.                 .contentType(MediaType.APPLICATION_JSON)
    29.                 .content(jsonArray))
    30.                 .andExpect(status().isOk())
    31.                 .andDo(print());
    32.     }
    复制代码


    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-23 03:44 , Processed in 0.061051 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表