springboot+mockmvc对controller进行测试

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

首先上一个pom.xml

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

接下来就是如何写

//表示使用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测试接口,同样可以改成其他类型,比较简单。

猜你喜欢

转载自blog.csdn.net/u012117299/article/details/80723411