直接上代码
import static org.hamcrest.Matchers.equalTo;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@RunWith(SpringRunner.class)
@SpringBootTest(classes = HenApplication.class)
@WebAppConfiguration
public class SysUserServiceImplTest {
private MockMvc mockMvc;
@Autowired
private SysUserController sysUserController;
@Before
public void before() throws Exception {
mockMvc= MockMvcBuilders.standaloneSetup(sysUserController).build();
}
@After
public void after() throws Exception {
}
@Test
public void testUserController() throws Exception {
// 测试
RequestBuilder request;
// 1、get查一下user列表,应该为空
request = get("/sysUser/");
mockMvc.perform(request)
.andExpect(status().isOk());
// 2、post提交一个user
request = post("/sysUser/")
.contentType(MediaType.APPLICATION_JSON)
.content("{\"id\":1,\"name\":\"admin\",\"age\":20}");
mockMvc.perform(request)
.andExpect(content().string(equalTo("success")));
// 3、get获取user列表,应该有刚才插入的数据
request = get("/sysUser/");
mockMvc.perform(request)
.andExpect(status().isOk());
// 4、put修改id为1的user
request = put("/sysUser/1")
.contentType(MediaType.APPLICATION_JSON)
.content("{\"name\":\"administrator\",\"age\":30}");
mockMvc.perform(request)
.andExpect(content().string(equalTo("success")));
// 5、get一个id为1的user
request = get("/sysUser/1");
mockMvc.perform(request);
// 6、del删除id为1的user
request = delete("/sysUser/1");
mockMvc.perform(request)
.andExpect(content().string(equalTo("success")));
// 7、get查一下user列表,应该为空
request = get("/sysUser/");
mockMvc.perform(request)
.andExpect(status().isOk())
.andExpect(content().string(equalTo("[]")));
}
}
@RestController
@RequestMapping("sysUser")
public class SysUserController extends BaseController<SysUser,SysUserService> {
/**
* 服务对象
*/
@Resource
private SysUserService sysUserService;
/**
* 处理"/users/"的GET请求,用来获取用户列表
*
* @return
*/
@GetMapping("/")
public List<SysUser> getUserList() {
// 还可以通过@RequestParam从页面中传递参数来进行查询条件或者翻页信息的传递
return sysUserService.list();
}
/**
* 处理"/users/"的POST请求,用来创建User
*
* @param user
* @return
*/
@PostMapping("/")
public String postUser(@RequestBody SysUser user) {
// @RequestBody注解用来绑定通过http请求中application/json类型上传的数据
sysUserService.save(user);
return "success";
}
/**
* 处理"/users/{id}"的GET请求,用来获取url中id值的User信息
*
* @param id
* @return
*/
@GetMapping("/{id}")
public SysUser getUser(@PathVariable Long id) {
// url中的id可通过@PathVariable绑定到函数的参数中
return sysUserService.getById(id);
}
/**
* 处理"/users/{id}"的PUT请求,用来更新User信息
*
* @param id
* @param user
* @return
*/
@PutMapping("/{id}")
public String putUser(@PathVariable Long id, @RequestBody SysUser user) {
user.setId(id);
sysUserService.updateById(user);
return "success";
}
/**
* 处理"/users/{id}"的DELETE请求,用来删除User
*
* @param id
* @return
*/
@DeleteMapping("/{id}")
public String deleteUser(@PathVariable Long id) {
sysUserService.removeById(id);
return "success";
}
}
要点
controller 需要通过注解注入。
注意static 包的导入。