zoukankan      html  css  js  c++  java
  • 使用MockMVC与Junit进行单体测试

    1、pom.xml追加

    junit

    spring-test

    2、测试共通类

    @ContextConfiguration(locations = { "classpath:springframework/application-context.xml",
            "classpath:springframework/dispatcherservlet-servlet.xml" })
    @RunWith(SpringJUnit4ClassRunner.class)
    @WebAppConfiguration
    @Transactional
    abstract public class TestCommon {
    
        private static final Logger LOG = LogManager.getLogger();
    
        private MockMvc mockMvc;
    
        @Autowired
        private WebApplicationContext wac;
    
        @Before
        public void setUp() {
            mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();
        }
    
    }

    3、示例

    public class MemberTest extends TestCommon {
    
        /**
         * 请求:新增,请求方式:POST
         */
        @Test
        @Rollback(false)
        public void add() throws Exception {
            String uri = "/member/add";
            Map<String, String> contentParams = new HashMap<>();
            contentParams.put("name", "测试用姓名");
            contentParams.put("sex", "男");
            String jsonStr = new ObjectMapper().writeValueAsString(contentParams);
            MockHttpServletResponse response = mockMvc.perform(
                    MockMvcRequestBuilders.post(uri).contentType(MediaType.APPLICATION_JSON_UTF8).content(jsonStr))
                    .andReturn().getResponse();
            if (response.getStatus() != HttpServletResponse.SC_OK) {
                fail("Http" + response.getStatus());
            }
                LOG.info(response.getContentAsString());
        }
    
    }

    4、如果想测试除post以外的请求,可以调用MockMvcRequestBuilders的get, put等方法

    5、类似于URL中的“?page=2”的参数,可以调用MockMvcRequestBuilders的params方法

  • 相关阅读:
    Android listview 的应用
    Android 创建自定义布局
    Android Dialog
    android ProgressBar
    Lilac Pwn stack4-stack_pivoting Writeup
    CTFHUB Pwn ret2shellcode Writeup
    Lilac Pwn stack3-rop Writeup
    函数调用过程与栈帧结构
    线性回归及Python实现
    Google Kick Start Round A 2020
  • 原文地址:https://www.cnblogs.com/deolin/p/7536858.html
Copyright © 2011-2022 走看看