文档章节

MockMvc 怎么集成测试?

jack_peng
 jack_peng
发布于 2016/03/31 18:57
字数 269
阅读 165
收藏 2
@Before
    public void initTests() throws Exception {
        mvc = MockMvcBuilders.webAppContextSetup(context)
                 .addFilters(springSecurityFilterChain)
                .build();
        
    }
    
    
@Test
 
    public void testLogin() throws Exception {
        mvc.perform(post("/login").param("username", "15812345678").param("password", "123456"))
        .andDo(print())
        .andExpect(MockMvcResultMatchers.redirectedUrl("/api/user/list"));
    }

流程是:

  1. 先登陆

  2. 取得用户数据

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

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

代码如下

@Before
    public void initTests() throws Exception {
        mvc = MockMvcBuilders.webAppContextSetup(context).addFilters(springSecurityFilterChain).build();
        session = (MockHttpSession) mvc.perform(post("/login")
                .param("username", "15812345678")
                .param("password","e10adc3949ba59abbe56e057f20f883e"))
                .andReturn().getRequest().getSession();;
    }
    
    
    
    @Test
    public void testDownSummary() throws Exception {
        List<LoanProgress> loanProgress = new ArrayList<>();
        LoanProgress l1 = new LoanProgress();
        l1.setApplyNo("RZ000001");
        l1.setRateHighest(0.12);
        LoanProgress l2 = new LoanProgress();
        l2.setApplyNo("RZ000002");
        l2.setRateHighest(0.12);
        loanProgress.add(l1);
        loanProgress.add(l2);
        
        String jsonArray = JSONObject.toJSONString(loanProgress);
        logger.debug(jsonArray);
        mvc.perform(get("/api/loanProgress/accept")
                .session(session)
                .contentType(MediaType.APPLICATION_JSON)
                .content(jsonArray))
                .andExpect(status().isOk())
                .andDo(print());
    }

 

 

© 著作权归作者所有

共有 人打赏支持
上一篇: Spring Cloud
下一篇: Docker使用场景一
jack_peng
粉丝 12
博文 63
码字总数 15229
作品 0
成都
私信 提问
Spring Boot应用的测试——Mockito

Spring Boot可以和大部分流行的测试框架协同工作:通过Spring JUnit创建单元测试;生成测试数据初始化数据库用于测试;Spring Boot可以跟BDD(Behavier Driven Development)工具、Cucumber和...

xiaomin0322
2018/01/12
0
0
shiro mock单元测试求解

在使用springmvc 与shiro集成的时候,浏览器访问shiro拦截器生效。通过mock实现controller单元测试,添加了mockmvc的filter 使shiro生效,但是现在问题是一直都不能通过初始化mockmvc对象的时...

盲人摸象
2016/06/16
503
0
junit 集成spring报错: GenericApplicationContext cannot be cast to WebApplicationContext

公司这个项目,不是我来配置构建的, 把 spring的配置什么的,和 springmvc的配置没有区分开来,都是在一个配置文件里面,也就是 springmvc 里面。和我们一般的 配置不一样,我们一般配置都是...

之渊
2017/11/03
0
0
spring-restdocs的研究

该框架通过单元测试来生成REST接口的说明文档,详见Spring REST Docs 可以对参数和返回值进行说明,还能产生url和返回用例 通过完善单元测试,和目前的mockMvc框架相结合,可以产生Asciidoct...

阿喀琉斯之盾
2016/07/22
1
0
Java程序员的日常—— POI与JDBC、Mockmvc与单元测试

周日没怎么休息好,周一一天都迷迷糊糊的,不过还算是干了不少的活。 总结一下,大致有以下几点内容: 1 使用poi以及mysql jdbc实现了一个复杂excel的导入 2 基于工程原有的代码,书写sprin...

青夜之衫
2017/12/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

商品详情页上拉查看详情

商品详情页上拉查看详情 目录介绍 01.该库介绍 02.效果展示 03.如何使用 04.注意要点 05.优化问题 06.部分代码逻辑 07.参考案例 01.该库介绍 模仿淘宝、京东、考拉等商品详情页分页加载的UI效...

潇湘剑雨
18分钟前
0
0
Netty内存池之PoolArena详解

PoolArena是Netty内存池中的一个核心容器,它的主要作用是对创建的一系列的PoolChunk和PoolSubpage进行管理,根据申请的不同内存大小将最终的申请动作委托给这两个子容器进行管理。整体上,P...

爱宝贝丶
23分钟前
1
0
Django使用Channels实现WebSocket--下篇

希望通过对这两篇文章的学习,能够对Channels有更加深入的了解,使用起来得心应手游刃有余 通过上一篇《Django使用Channels实现WebSocket--上篇》的学习应该对Channels的各种概念有了清晰的认...

运维咖啡吧
30分钟前
2
0
linux下设置定时执行shell脚本的示例

很多时候我们有希望服务器定时去运行一个脚本来触发一个操作,比如说定时去备份服务器数据、数据库数据等 不适合人工经常做的一些操作这里简单说下 shell Shell俗称壳,类似于DOS下的command...

阿锋zxf
33分钟前
3
0
介绍Kubernetes监控Heapster

什么是Heapster? Heapster是容器集群监控和性能分析工具,天然的支持Kubernetes和CoreOS,Kubernetes有个出名的监控agent—cAdvisor。在每个kubernetes Node上都会运行cAdvisor,它会收集本机...

xiangyunyan
34分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部