|
|
package com.example.web;
|
|
|
|
|
|
import static org.hamcrest.Matchers.equalTo;
|
|
|
import org.junit.jupiter.api.BeforeEach;
|
|
|
import org.junit.jupiter.api.Test;
|
|
|
import org.junit.jupiter.api.extension.ExtendWith;
|
|
|
import org.springframework.boot.test.context.SpringBootTest;
|
|
|
import org.springframework.http.MediaType;
|
|
|
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
|
|
import org.springframework.test.web.servlet.MockMvc;
|
|
|
import org.springframework.test.web.servlet.RequestBuilder;
|
|
|
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
|
|
|
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
|
|
|
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
|
|
|
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
|
|
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
|
|
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
|
|
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
|
|
|
|
|
|
@ExtendWith(SpringExtension.class)
|
|
|
@SpringBootTest
|
|
|
class WebApplicationTests {
|
|
|
|
|
|
private MockMvc mvc;
|
|
|
|
|
|
@BeforeEach //替代 @Before
|
|
|
public void setUp() {
|
|
|
mvc = MockMvcBuilders.standaloneSetup(new UserController()).build();
|
|
|
}
|
|
|
|
|
|
@Test
|
|
|
public void testUserController() throws Exception {
|
|
|
// 测试UserController
|
|
|
RequestBuilder request;
|
|
|
|
|
|
// 1、get查一下user列表,应该为空
|
|
|
request = get("/users/");
|
|
|
mvc.perform(request)
|
|
|
.andExpect(status().isOk())
|
|
|
.andExpect(content().string(equalTo("[]")));
|
|
|
|
|
|
// 2、post提交一个user
|
|
|
request = post("/users/")
|
|
|
.contentType(MediaType.APPLICATION_JSON)
|
|
|
.content("{\"id\":1,\"name\":\"测试大师\",\"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")
|
|
|
.contentType(MediaType.APPLICATION_JSON)
|
|
|
.content("{\"name\":\"测试终极大师\",\"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("[]")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|