接口测试异常
package com.zdq.mall.controller;
import com.zdq.mall.common.ApiRestResponse;
import com.zdq.mall.common.Constant;
import com.zdq.mall.exception.MallExceptionEnum;
import com.zdq.mall.model.pojo.User;
import com.zdq.mall.model.request.AddCategoryReq;
import com.zdq.mall.service.CategoryService;
import com.zdq.mall.service.UserService;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
import javax.servlet.http.HttpSession;
import javax.validation.Valid;
/**
* 描述: 目录Controller
*/
@Controller
public class CategoryConroller {
@Autowired
UserService userService;
@Autowired
CategoryService categoryService;
/**
* 后台添加目录
* @param session
* @param addCategoryReq
* @return
*/
@ApiOperation("后台添加目录")
@PostMapping("admin/category/add")
@ResponseBody
public ApiRestResponse addCategroy(HttpSession session,@Valid AddCategoryReq addCategoryReq){
User currentUser =(User) session.getAttribute(Constant.MALL_USER);
if(currentUser==null){
return ApiRestResponse.error(MallExceptionEnum.NEED_LOGIN);
}
//校验是否是管理员
boolean adminRole = userService.checkAdminRole(currentUser);
if(adminRole){
//是管理员,执行操作
categoryService.add(addCategoryReq);
return ApiRestResponse.success();
}else{
return ApiRestResponse.error(MallExceptionEnum.NEED_ADMIN);
}
}
}相关代码:
package com.zdq.mall.model.request;
import javax.validation.constraints.Max;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
/**
* 描述: 添加目录的请求类
*/
public class AddCategoryReq {
@Size(min=2,max=5)
@NotNull
private String name;
@NotNull
@Max(3)
private Integer type;
@NotNull
private Integer parentId;
@NotNull
private Integer orderNum;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
public Integer getParentId() {
return parentId;
}
public void setParentId(Integer parentId) {
this.parentId = parentId;
}
public Integer getOrderNum() {
return orderNum;
}
public void setOrderNum(Integer orderNum) {
this.orderNum = orderNum;
}
}相关代码:
package com.zdq.mall.exception;
import com.zdq.mall.common.ApiRestResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.ArrayList;
import java.util.List;
/**
* 描述: 处理统一异常的handler
*/
@ControllerAdvice
public class GlobalExceptionHandler {
private final Logger log= LoggerFactory.getLogger(CloneNotSupportedException.class);
// @ExceptionHandler(Exception.class)
// @ResponseBody
// public Object handleException(Exception e){
// log.error("Default Exception: ",e);
// return ApiRestResponse.error(MallExceptionEnum.SYSTEM_ERROR);
// }
@ExceptionHandler(MallException.class)
@ResponseBody
public Object handleMallException(MallException e){
log.error("MallException: ",e);
return ApiRestResponse.error(e.getCode(),e.getMessage());
}
@ExceptionHandler(MethodArgumentNotValidException.class)
@ResponseBody
public ApiRestResponse handleMethodArgumentNotValidException(
MethodArgumentNotValidException e) {
log.error("MethodArgumentNotValidException: ", e);
return handleBindingResult(e.getBindingResult());
}
private ApiRestResponse handleBindingResult(BindingResult result) {
//把异常处理为对外暴露的提示
List<String> list = new ArrayList<>();
if (result.hasErrors()) {
List<ObjectError> allErrors = result.getAllErrors();
for (ObjectError objectError : allErrors) {
String message = objectError.getDefaultMessage();
list.add(message);
}
}
if (list.size() == 0) {
return ApiRestResponse.error(MallExceptionEnum.REQUEST_PARAM_ERROR);
}
return ApiRestResponse
.error(MallExceptionEnum.REQUEST_PARAM_ERROR.getCode(), list.toString());
}
}相关截图:

问题描述:
接口测试不通过,不知道哪里出现问题了,控制台都能显示出来异常
7
收起
正在回答 回答被采纳积分+1
1回答
相似问题
登录后可查看更多问答,登录/注册
2023版Java工程师
- 参与学习 人
- 提交作业 8788 份
- 解答问题 9886 个
综合就业常年第一,编程排行常年霸榜,北上广深月薪过万! 不需要基础,无需脱产即可学习,只要你有梦想,想高薪! 全新升级:技术栈升级(包含VUE3.0,ES6,Git)+项目升级(前后端联调与功能升级)
了解课程


恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星