GWTTestCase文件上传

时间:2012-08-28 14:59:51

标签: gwt file-upload

我正在尝试使用FileUpload和FormPanel编写一些gwt测试用例来上传文件。

我的代码(未经测试)看起来像:

@Test
public void testImportXml() {
    delayTestFinish(10000);
    FormPanel fileForm=new FormPanel();
    fileForm.setEncoding(FormPanel.ENCODING_MULTIPART);
    fileForm.setMethod(FormPanel.METHOD_POST);
    fileForm.setAction(GWT.getModuleBaseURL()+"/xmlupload");
    URL myFile=this.getClass().getClassLoader().getResource("myfile.xml");
    // FileUpload uploadField; ??

    fileForm.addSubmitHandler(new SubmitHandler() {
        @Override
        public void onSubmit(SubmitEvent event) {
            logger.info("submit handler pushed");
        }
    });
    fileForm.submit();
}

我找不到配置FileUpload以使用“myFile”的方法。 我知道这是出于浏览器安全原因,但在编写测试用例时这是一个巨大的障碍。

是否有办法为gwt中的测试用例指定FileUpload的文件名?

1 个答案:

答案 0 :(得分:2)

没有

然而人们可能想知道你实际上试图测试的是什么?

  • 提交/提交完整处理程序?你最好直接在FormPanel上发布事件;您还可以重构代码以使用某些MV *模式,以便您实际测试的代码不依赖于GWT小部件,然后您可以使用vanilla JUnit测试。
  • servlet?然后不要使用GWTTestCase,使用HttpClient或类似的东西,并在服务器上运行对servlet发出请求(最好以集成测试完成;看看Arquillian到使设置更容易)
  • FormPanel + FileUpload和servlet之间的整个交互?然后不要使用GWTTestCase,使用Selenium驱动浏览器与正在运行的服务器通信(最好以集成测试验收测试完成)