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測試接口,同樣可以改成其他類型,比較簡單。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章