1. 程式人生 > >Spring Cloud Spring Boot mybatis分布式微服務雲架構(六)RESTfu

Spring Cloud Spring Boot mybatis分布式微服務雲架構(六)RESTfu

web 模塊 Spring

下面針對該Controller編寫測試用例驗證正確性,具體如下。當然也可以通過瀏覽器插件等進行請求提交驗證。

@RunWith(SpringJUnit4Cla***unner.class)   
@SpringApplicationConfiguration(classes = MockServletContext.class)   
@WebAppConfiguration   
public class ApplicationTests {   

    private MockMvc mvc;   

    @Before   
    public void setUp() throws Exception {   
        mvc = MockMvcBuilders.standaloneSetup(new UserController()).build();   
    }   

    @Test   
    public void testUserController() throws Exception {   
        // 測試UserController   
        RequestBuilder request = null;   

        // 1、get查一下user列表,應該為空   
        request = get("/users/");   
        mvc.perform(request)   
                .andExpect(status().isOk())   
                .andExpect(content().string(equalTo("[]")));   

        // 2、post提交一個user   
        request = post("/users/")   
                .param("id", "1")   
                .param("name", "測試大師")   
                .param("age", "20");   
        mvc.perform(request)   
                .andExpect(content().string(equalTo("success")));   

        // 3、get獲取user列表,應該有剛才插入的數據   
        request = get("/users/");   
        mvc.perform(request)   
                .andExpect(status().isOk())   
                .andExpect(content().string(equalTo("[{\"id\":1,\"name\":\"測試大師\",\"age\":20}]")));   

        // 4、put修改id為1的user   
        request = put("/users/1")   
                .param("name", "測試終極大師")   
                .param("age", "30");   
        mvc.perform(request)   
                .andExpect(content().string(equalTo("success")));   

        // 5、get一個id為1的user   
        request = get("/users/1");   
        mvc.perform(request)   
                .andExpect(content().string(equalTo("{\"id\":1,\"name\":\"測試終極大師\",\"age\":30}")));   

        // 6、del刪除id為1的user   
        request = delete("/users/1");   
        mvc.perform(request)   
                .andExpect(content().string(equalTo("success")));   

        // 7、get查一下user列表,應該為空   
        request = get("/users/");   
        mvc.perform(request)   
                .andExpect(status().isOk())   
                .andExpect(content().string(equalTo("[]")));   

    }   

}  

至此,我們通過引入web模塊(沒有做其他的任何配置),就可以輕松利用Spring MVC的功能,以非常簡潔的代碼完成了對User對象的RESTful API的創建以及單元測試的編寫。其中同時介紹了Spring MVC中最為常用的幾個核心註解:@Controller,@RestController,RequestMapping以及一些參數綁定的註解:@PathVariable,@ModelAttribute,@RequestParam等。

Spring Cloud Spring Boot mybatis分布式微服務雲架構(六)RESTfu