模拟带有文件和其他字段的表单的 reseteasy @MultiPartForm

Mock reseteasy @MultiPartForm with form with file and other fields

我正在使用@MultipartForm 通过网络服务上传文件..

 @POST
    @Path("/upload")
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    public Response upload(@NotNull @MultipartForm MyPOJO pojo) {code here}

=== POJO

MyPOJO{
 @FormParam("id")
    private String id;


    @FormParam("file")
    @PartType("application/octet-stream")
    private byte[] fileData;

}

为了模拟这个我尝试使用

ResteasyClient client = new ResteasyClientBuilder().build();
String url = TestPortProvider.generateURL("myurl");
ResteasyWebTarget target = client.target(url);
MultipartFormDataOutput multipartFormDataOutput = new MultipartFormDataOutput();
multipartFormDataOutput.addFormData("file", new FileInputStream(IMAGE_FILE), MediaType.APPLICATION_OCTET_STREAM_TYPE);
GenericEntity<MultipartFormDataOutput> entity = new GenericEntity<MultipartFormDataOutput>(multipartFormDataOutput){};
Response r = target.request().post( Entity.entity(entity, MediaType.MULTIPART_FORM_DATA_TYPE));

我遇到的问题是我有除 file 以外的其他表单字段 (id)。我的问题是如何访问这些并在测试时传递给 URL。感谢您在此方面的帮助。

已找到答案。它就像使用 addFormData 调用其他表单元素一样简单,例如

multipartFormDataOutput.addFormData("id","value of id", MediaType.TEXT_PLAIN_TYPE);