• 单元测试中模拟mvc测试对象MockMvc


    import com.hengyu.chapter39.service.impl.MongoDBServiceImpl;
    import org.junit.Before;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringRunner;
    import org.springframework.test.web.servlet.MockMvc;
    import org.springframework.test.web.servlet.MvcResult;
    import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
    import org.springframework.test.web.servlet.result.MockMvcResultHandlers;
    import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
    import org.springframework.test.web.servlet.setup.MockMvcBuilders;
    import org.springframework.web.context.WebApplicationContext;
    
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class ChapterApplicationTests {
        @Autowired
        private MongoDBServiceImpl mongoDBService;
        /**
         * 模拟mvc测试对象
         */
        private MockMvc mockMvc;
    
        /**
         * web项目上下文
         */
        @Autowired
        private WebApplicationContext webApplicationContext;
    
        /**
         * 所有测试方法执行之前执行该方法
         */
        @Before
        public void before() {
            //获取mockmvc对象实例
            mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
        }
    
        /**
         * 测试添加商品
         * @throws Exception
         */
        @Test
        public void addGood() throws Exception
        {
            MvcResult result = mockMvc.perform(MockMvcRequestBuilders.post("/good/save")
                    .param("name","西红柿")
                    .param("unit","斤")
                    .param("price","12.88")
            )
                    .andDo(MockMvcResultHandlers.print())
                    .andExpect(MockMvcResultMatchers.status().is(200))
                    .andReturn();
            result.getResponse().setCharacterEncoding("UTF-8");
            System.out.println(result.getResponse().getContentAsString());
        }
    
        @Test
        public void queryMongo() throws Exception {
            MvcResult mvcResult = mockMvc.perform(MockMvcRequestBuilders.get("/template/query"))
                    .andDo(MockMvcResultHandlers.print())
                    .andExpect(MockMvcResultMatchers.status().is(200))
                    .andReturn();
            System.out.println(mvcResult.getResponse().getContentAsString());
        }
    
        @Test
        public void list() throws Exception {
            MvcResult mvcResult = mockMvc.perform(MockMvcRequestBuilders.get("/template/list"))
                    .andDo(MockMvcResultHandlers.print())
                    .andExpect(MockMvcResultMatchers.status().is(200))
                    .andReturn();
            mvcResult.getResponse().setCharacterEncoding("utf8");
            System.out.println(mvcResult.getResponse().getContentAsString());
        }
    }
  • 相关阅读:
    Android和C#实时视频传输Demo
    cocos2d-x3.0 windows 环境配置
    WPF六个控制概述
    高度并行的指令级的超级处理器
    Oracle存储过程的简单示例
    SharePoint Search之(两)持续抓取Continues crawl
    第28周三
    第28周二
    第28周一
    第27周日
  • 原文地址:https://www.cnblogs.com/liangmm/p/12028706.html
Copyright © 2020-2023  润新知