为Java jUnit测试创建MultipartFormDataInput对象
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了为Java jUnit测试创建MultipartFormDataInput对象,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2100字,纯文字阅读大概需要4分钟。
内容图文
我有一个Resteasy webservice方法,它将MultipartFormDataInput对象作为其parm,并从中提取大量信息.我想为这个方法编写一个jUnit测试,但我一直无法找到任何方法来创建这个对象并在其中放入虚拟数据,因此我可以直接调用我的webservice方法.服务方法从这样的表单中提取数据……
@POST
@Path("/requestDeviceCode")
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
@Consumes("multipart/form-data")
public DeviceCodeModel requestDeviceCode(final MultipartFormDataInput inputMultipart) {
// process the form data - only field in the form is the token
Map<String, List<InputPart>> formData = null; // we'll put the form data in here
formData = inputMultipart.getFormDataMap();
String token = null;
try {
token = formData.get("Token").get(0).getBodyAsString();
this._logger.debug("Pulled encrypted token out of input form, it's " + token);
这工作正常,但试图创建一个对象作为parm传递给’requestDeviceCode’让我受阻.我尝试过这种变化……
// create a multipartForm (input to the service POST) and add the "token" string to it
MultipartFormDataOutput newForm = new MultipartFormDataOutput();
newForm.addFormData("Token", encryptedXMLString, MediaType.APPLICATION_XML_TYPE);
_service.requestDeviceCode((MultipartFormDataInput) newForm);
但它只是没有这样做(这个特殊的错误是我无法将Output表单转换为Input表单).我无法找到创建新MultiPartFormDataInput并向其添加数据的方法.
有人有建议吗?
解决方法:
在尝试对我接受MultipartFormDataInput的RestEasy WebService方法进行单元测试时,我偶然发现了类似的问题.
你可以做的是模拟MultipartFormDataInput,为你期望接收的每个表单参数返回一个带有模拟InputPart的准备好的地图.
可能的解决方案(使用JUnit / Mockito):
@Test
public void testService() {
// given
MultipartFormDataInput newForm = mock(MultipartFormDataInput.class);
InputPart token = mock(InputPart.class);
Map<String, List<InputPart>> paramsMap = new HashMap<>();
paramsMap.put("Token", Arrays.asList(token));
when(newForm.getFormDataMap()).thenReturn(paramsMap);
when(token.getBodyAsString()).thenReturn("expected token param body");
// when
DeviceCodeModel actual = _service.requestDeviceCode(newForm);
// then
// verifications and assertions go here
}
内容总结
以上是互联网集市为您收集整理的为Java jUnit测试创建MultipartFormDataInput对象全部内容,希望文章能够帮你解决为Java jUnit测试创建MultipartFormDataInput对象所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。