0

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();
}

「myFile」を使用するように FileUpload を構成する方法が見つかりませんでした。これがブラウザのセキュリティ上の理由であることは理解していましたが、テストケースを作成する際には大きな障害となります。

gwt 内のテストケースの FileUpload にファイル名を指定する方法はありますか?

4

1 に答える 1

2

いいえ。

しかし、実際にテストしようとしているのは何でしょうか。

  • 送信/送信完了ハンドラー?FormPanelで直接イベントを発生させる方がよいでしょう。また、実際にテストしているコードがGWTウィジェットに関連付けられないように、コードをリファクタリングしてMV *パターンを使用することもできます。その後、バニラJUnitテストを使用できます。
  • サーブレット?次に、GWTTestCaseを使用せず、HttpClientまたは同様のものを使用して、サーバーで実行されているサーブレットに対して要求を行います(統合テストとして実行するのが最適です。セットアップを容易にするために、 Arquillianを参照してください)。
  • FormPanel + FileUploadとサーブレット間の相互作用全体?次に、GWTTestCaseを使用せず、Seleniumを使用して、実行中のサーバーと通信するブラウザーを駆動します(統合テストまたは受け入れテストとして実行するのが最適です) 。
于 2012-08-28T16:06:44.410 に答える