Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GWTTestCase文件上载_Gwt_File Upload - Fatal编程技术网

GWTTestCase文件上载

GWTTestCase文件上载,gwt,file-upload,Gwt,File Upload,我试图编写一些gwt测试用例,使用FileUpload和FormPanel上传文件 我的代码(未经测试)如下所示: @测试 public void testImportXml(){ 延迟测试完成(10000); FormPanel fileForm=新的FormPanel(); setEncoding(FormPanel.ENCODING\u MULTIPART); fileForm.setMethod(FormPanel.METHOD\u POST); setAction(GWT.getMod

我试图编写一些gwt测试用例,使用FileUpload和FormPanel上传文件

我的代码(未经测试)如下所示:

@测试
public void testImportXml(){
延迟测试完成(10000);
FormPanel fileForm=新的FormPanel();
setEncoding(FormPanel.ENCODING\u MULTIPART);
fileForm.setMethod(FormPanel.METHOD\u POST);
setAction(GWT.getModuleBaseURL()+“/xmlupload”);
URL myFile=this.getClass().getClassLoader().getResource(“myFile.xml”);
//FileUpload uploadField??
addSubmitHandler(新SubmitHandler(){
@凌驾
提交时公共无效(提交事件){
logger.info(“提交处理程序”);
}
});
fileForm.submit();
}
我找不到将FileUpload配置为使用“myFile”的方法。 我知道这样做是出于浏览器安全的原因,但在编写测试用例时,这是一个巨大的障碍

是否有一种方法可以为gwt中的测试用例指定文件上传文件名?

但你可能会想知道你到底在测试什么

  • 提交/提交完整处理程序?你最好直接在FormPanel上启动事件;您还可以重构代码以使用一些MV*模式,这样您实际测试的代码就不会绑定到GWT小部件,然后您可以使用普通的JUnit测试
  • servlet?然后,不要使用GWTTestCase,使用HttpClient或任何类似的工具,对运行在服务器上的servlet发出请求(最好作为集成测试完成;查看一下以使其更易于设置)
  • FormPanel+FileUpload和servlet之间的整个交互?然后不要使用GWTTestCase,使用Selenium驱动浏览器与正在运行的服务器对话(最好作为集成测试或验收测试完成)

谢谢你的明确回答。虽然我同意你的意见,但我不喜欢在我的第一个gwt项目的早期阶段就开始使用大量的基础设施来测试简单的客户机-服务器交互。这取决于你想要测试什么。如果测试服务器端,还可以重构代码,以便真正的处理可以独立于servlet容器运行(即,从请求中提取文件和字段,并将它们作为参数传递给另一个方法,并且只对该方法进行单元测试,这样您就不需要
HttpServletRequest
HttpServletResponse
等。)但是,如果您想测试整个交互,Selenium就是您所需要/想要的,而且您还可以驱动真正的浏览器!(例如,有关完全自动化的信息,请参阅)