1 回答
TA贡献1816条经验 获得超6个赞
不知道为什么,但下面的更改修复了它。问题可能出在自动化测试上。
@Test
public void testGetNonExistantVideosData() throws Exception {
long nonExistantId = getInvalidVideoId();
try{
Response r = videoSvc.getData(nonExistantId);
assertEquals(404, r.getStatus());
}catch(RetrofitError e){
assertEquals(404, e.getResponse().getStatus());
}
}
我的方法签名如下。我将方法更改为当传入无效 id 作为参数时返回 null,并且仅当传入有效 id 并且二进制视频 mpeg 数据成功写入 HttpServletResponse.Outputstream 时才返回 VideoStatus。
换句话说,做 aresponse.sendError()也需要 a return null;。
@RequestMapping(value = VIDEO_DATA_PATH, method = RequestMethod.POST)
public @ResponseBody VideoStatus uploadVideo(@PathVariable("id") long id, @RequestParam("data") MultipartFile data, HttpServletResponse response) {
VideoStatus status = new VideoStatus(VideoStatus.VideoState.READY);
添加回答
举报