Mock reseteasy @MultiPartForm包含带有文件和其他字段的表单

时间:2015-02-25 00:50:59

标签: java mocking jax-rs resteasy

我正在使用@MultipartForm通过webservice上传文件..

 @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));

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

1 个答案:

答案 0 :(得分:0)

找到答案。它就像使用像

这样的addFormData调用其他表单元素一样简单
multipartFormDataOutput.addFormData("id","value of id", MediaType.TEXT_PLAIN_TYPE);