Java junit有没有办法测试一个rest服务,该服务使用MediaType.MULTIPART\u FORM\u数据进行文件上传?

Java junit有没有办法测试一个rest服务,该服务使用MediaType.MULTIPART\u FORM\u数据进行文件上传?,java,web-services,junit,jersey,multipartform-data,Java,Web Services,Junit,Jersey,Multipartform Data,我有一个restful Web服务,基本上可以上传文件。但我还没有为它构建UI。我想编写一个junit测试,调用服务并上传一个文件。我该怎么做?我看不到手动创建表单以传递给服务的方法 这是我的休息服务: @POST @Consumes(MediaType.MULTIPART_FORM_DATA) public Response uploadFile( @FormDataParam("file") InputStream uploadedInputStream, @FormData

我有一个restful Web服务,基本上可以上传文件。但我还没有为它构建UI。我想编写一个junit测试,调用服务并上传一个文件。我该怎么做?我看不到手动创建表单以传递给服务的方法

这是我的休息服务:

@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(
    @FormDataParam("file") InputStream uploadedInputStream,
    @FormDataParam("file") FormDataContentDisposition fileDetail) {

    String uploadedFileLocation = "c://uploadedFiles/" + fileDetail.getFileName();

    // save it
   // saveToFile(uploadedInputStream, uploadedFileLocation);

    String output = "File uploaded via Jersey based RESTFul Webservice to: " + uploadedFileLocation;

    return Response.status(200).entity(output).build();
}

您可以与JUnit一起使用。

我已经实现了以下代码,它运行良好。如果您有任何问题,请告诉我:

FormDataMultiPart form = new FormDataMultiPart();
URI uri = new File("filepath").toURI();
InputStream data =  this.getClass().getResourceAsStream("filePath");    
FormDataBodyPart fdp1 = new FormDataBodyPart("key1", uri.toString());
FormDataBodyPart fdp2 = new FormDataBodyPart("key2",data, MediaType.APPLICATION_OCTET_STREAM_TYPE);

form.bodyPart(fdp1).bodyPart(fdp2); 
response = builder.post(ClientResponse.class, form);

Assert.assertEquals(response.getStatus(), Status.OK.getStatusCode());

我是新手。你能分享一下填充方法吗?请看看你在哪里找到了API端点