美文网首页程序员
spring Controller 测试

spring Controller 测试

作者: 天涯笑笑生 | 来源:发表于2018-03-19 17:49 被阅读0次

简介

使用springmvc mock
参考:Spring MVC如何测试Controller(使用springmvc mock测试)

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
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;

/**
 * Created by jony on 3/19/18.
 */

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("file:src/main/webapp/WEB-INF/mvc-dispatcher-servlet.xml")
@WebAppConfiguration
public class MainControllerTest {

    protected MockMvc mockMvc;

    @Autowired
    protected WebApplicationContext wac;

    @Before()  //这个方法在每个方法执行之前都会执行一遍
    public void setup()
    {
        mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();  //初始化MockMvc对象
    }

    @Test
    public void getAllCategoryTest() throws Exception
    {
        MvcResult mvcResult = mockMvc.perform(MockMvcRequestBuilders.get("/intlcc/tcp_client.do"))
                .andExpect(MockMvcResultMatchers.status().is(200))
                .andDo(MockMvcResultHandlers.print())
                .andReturn();
        int status = mvcResult.getResponse().getStatus();
        System.out.println("请求状态码:" + status);
//        String result = mvcResult.getResponse().getContentAsString();
//        System.out.println("接口返回结果:" + result);
//        JSONObject resultObj = JSON.parseObject(result);
//        // 判断接口返回json中success字段是否为true
//        Assert.assertTrue(resultObj.getBooleanValue("success"));
    }
}


依赖

除了spring 框架以及Junit,Servlet 也是需要的(下面的依赖spring 没贴)


 <!--servlet-->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
    </dependency>

 <!--Test-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>3.2.8.RELEASE</version>
      <scope>test</scope>
    </dependency>

注:测试过程打印一大堆,得仔细研究

相关文章

网友评论

    本文标题:spring Controller 测试

    本文链接:https://www.haomeiwen.com/subject/xebpqftx.html