我正在尝试为Rest api调用编写单元测试,该调用具有POST方法,用于使用Jersey2将视频文件添加到基于Web的应用程序.这是TemplateController.java我想要编写单元测试的class()方法的签名:
@POST
@Path("/video/add")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response addVideoData(
@Context HttpServletRequest request,
AttachmentDTO attachmentDTO) {
...
}
Run Code Online (Sandbox Code Playgroud)
这是我测试类(TemplateControllerUnitTestCase.java)的测试方法:
@Test
public void videoAdd_requestObjectIsNull_ResponseStatusIsOK() throws Exception {
// arrange
Builder builder = target("/target/video/add").request();
// action
final Response response = builder.post(Entity.entity(attachemntDTO, MediaType.APPLICATION_JSON));
// assertion
...
}
Run Code Online (Sandbox Code Playgroud)
我能够在传递AttachmentDAO对象到TemplateController从测试类类,但无法通过这是越来越无效的请求对象method(addVideoData())的TemplateController.java class.
我正在使用RequestHelper类,它是一个帮助类HttpServletRequest,所以我想将这个类的对象传递给method(addVideoData())使用Jersey2测试框架.