springboot+mockmvc对controller进行测试

对接口进行测试是一个项目后台开发必不可少的环节,这里总结一个简单可用的demo,作为记录。

首先上一个pom.xml


            org.springframework.boot
            spring-boot-starter-test
            test
        

接下来就是如何写

//表示使用Spring Test组件进行单元测试,其中SpringRunner继承类SpringJUnit4ClassRunner。
@RunWith(SpringRunner.class)
@SpringBootTest(classes = SpringShiroApplication.class)
//注入一个MockMvc实例;
@AutoConfigureMockMvc
//测试环境使用,用来表示测试环境使用的ApplicationContext将是WebApplicationContext类型的;value指定web应用的根;
@WebAppConfiguration
public class UserControlTest {

    @Autowired
    private UserController userController;

    private MockMvc mockMvc;

    @Before
    public void setup(){
        mockMvc = MockMvcBuilders.standaloneSetup(userController).build();
    }
    //验证controller是否正常响应并打印返回结果
    @Test
    public void getHello() throws Exception {
        MvcResult mvcResult = mockMvc.perform(MockMvcRequestBuilders.get("/User/queryUser").accept(MediaType.APPLICATION_JSON)
                .param("username","admin"))
//                .param("date","2017-7-18 00:00:00")
//                .param("pageNum","1")
//                .param("pageSize","10"))
                .andExpect(MockMvcResultMatchers.status().isOk())
                .andDo(MockMvcResultHandlers.print())
                .andReturn();
        System.out.println("输出 " + mvcResult.getResponse().getContentAsString());
    }


}
这里只是一个简单的get测试接口,同样可以改成其他类型,比较简单。

你可能感兴趣的:(java,spring)