zoukankan      html  css  js  c++  java
  • 使用Spring MockMVC对controller做单元测试

    1、对单一controller做测试。

    import org.junit.Before;
    import org.junit.Test;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.http.MediaType;
    import org.springframework.test.web.servlet.MockMvc;
    import org.springframework.test.web.servlet.MvcResult;
    import org.springframework.test.web.servlet.ResultActions;
    import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
    import org.springframework.test.web.servlet.setup.MockMvcBuilders;
    import org.junit.runner.RunWith;
    import org.springframework.test.context.ContextConfiguration;
    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
    import org.springframework.test.context.web.WebAppConfiguration;
    
    @RunWith(SpringJUnit4ClassRunner.class)
    @WebAppConfiguration("classpath:")
    @ContextConfiguration("/data/spring-test.xml")
    public class CommonCtrlTest {
    
        private MockMvc mockMvc;
    
        @Autowired
        CommonCtrl commonCtrl;
    
        @Before
        public void setup() {
            this.mockMvc = MockMvcBuilders.standaloneSetup(commonCtrl).build();
        }
    
        @Test
        public void testHello() throws Exception {
            ResultActions resultActions = this.mockMvc.perform(
                    MockMvcRequestBuilders.get("/test").accept(MediaType.APPLICATION_JSON));
            MvcResult mvcResult = resultActions.andReturn();
            String result = mvcResult.getResponse().getContentAsString();
            System.out.println("response:" + result);
        }
    }

    2、对整个环境做测试,包括Interceptor。

    import org.junit.Before;
    import org.junit.Test;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.test.web.servlet.MockMvc;
    import org.springframework.test.web.servlet.setup.MockMvcBuilders;
    import org.springframework.web.context.WebApplicationContext;
    import outfox.course.weixinkaoshen.dao.AbstractTest;
    
    import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
    import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
    import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
    
    public class TestKaoshenCtrl extends AbstractTest{
        @Autowired
        private WebApplicationContext wac;
    
        private MockMvc mockMvc;
    
        @Before
        public void setUp() {
            mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();
        }
    
        @Test
        public void testAddUser() throws Exception {
            mockMvc.perform((get("/test/get").param("id", "1")))
                    .andExpect(status().isOk()).andDo(print());
        }
    }
  • 相关阅读:
    解决点击链接自动置顶问题
    ie6 下遮罩层 height 不显示100%的解决方法
    【转帖】微软分布式缓存框架Volocity资源推荐
    Tips 2 MVC实现多个按钮提交的几种方法
    .NET Framework 4 中的新增功能
    Memcached 汇总 不断更新
    理解敏捷Agile
    GPIOPS中断成功,问题仍旧存在 ZEDBOARD,ZYNQ7000
    Xilinx驱动API的一个重要BUG,ZEDBOARD,ZYNQ7000
    RelativeLayout相对布局
  • 原文地址:https://www.cnblogs.com/ylty/p/6420738.html
Copyright © 2011-2022 走看看