0

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

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

@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 指定文件名?

4

1 回答 1

2

不。

但是有人可能想知道您实际上要测试的是什么?

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