请教高手:在JUnit中创建FormFile对象的问题

80x88 2007-07-20 10:18:14
FormFile和文件上传控件绑定。正常情况下,这个是从ActionForm中传过来的。现在要对业务方法写测试代码,需要在Junit中手工构造一个FormFile对象,Google出了一个解决方案,如下。问题是:file.getFileSize()调用时抛空指针错误。看了一下代码,原来是fileItem中的dfos为null的原因(在getFileSize方法中有dfos.isInMemory()代码),我用下面的方法构造出来的fileItem的dfos和dfosFile都是null。请教高手,这个问题如何解决。
下面的代码结构是google出来的,其实我也不是特别理解。如果高手能顺便给解释一下也不胜感激。
(Class parentClass = Class
.forName("org.apache.struts.upload.CommonsMultipartRequestHandler");
Class childClass = parentClass.getDeclaredClasses()[0];
Constructor c = childClass.getConstructors()[0];
c.setAccessible(true);

DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(1000 * 1000 * 10);
factory.setRepository(new File("F:\\temp\\temp"));
FileItem fileItem = factory.createItem("uploadfile",
"application/txt", false, "F:\\temp\\temp\\BUG.txt");

FormFile file = (FormFile) c.newInstance(new Object[] { fileItem });
c.setAccessible(false);
System.out.println(file.getFileSize());
...全文
278 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
mfwkfn121 2009-03-05
  • 打赏
  • 举报
回复
同问????希望有高手能够帮助解决!

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧