【发布时间】:2018-10-12 03:47:27
【问题描述】:
我正在尝试为端点编写 unitTest。
此端点应采用如下 json 对象
@PostMapping(value = "/test")
public String endPoint(@RequestBody String obj) {
try {
JSONObject inputJsonObject = new JSONObject(individualJson);
} catch (JSONException | IOException e) {
throw new MyException("JSONObject not valid");
}
......
}
在我的单元测试中,我试图发送一个空字符串,并且我希望有一个 JSONException
mvc.perform(post(url)
.contentType(MediaType.APPLICATION_JSON)
.content(""))
.andReturn().getResponse();
但是,我的帖子没有到达我的终点……就像它无法将空字符串评估为字符串一样:“”但是没有到达终点 “”(带空格)正在到达终点……
这是调用返回的异常:
org.springframework.http.converter.HttpMessageNotReadableException: 缺少所需的请求正文:公共 com.ba.mypackage.MyController.endPoint(java.lang.String)
如何通过传递空字符串 "" 来访问端点?
【问题讨论】:
-
您在服务器日志上没有看到任何异常?
-
是的,我更新了我的帖子以放置异常
-
@tima 为什么空字符串不是有意义的对象?
-
@tima 端点不需要有效的 JSON,而是一个字符串 - “@RequestBody String obj”。对于无效的 JSON,将抛出
MyException -
@eis 我错过了...
标签: java spring-boot request jackson