1. 程式人生 > >springcloud Spring Boot mybatis分散式微服務雲架構(六):配置中心

springcloud Spring Boot mybatis分散式微服務雲架構(六):配置中心

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

@RunWith(SpringJUnit4ClassRunner.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中最為常用的幾個核心註解:,@RestController,RequestMapping以及一些引數繫結的註解:@PathVariable,@ModelAttribute,@RequestParam等。

完整專案的原始碼來源 技術支援1791743380