如何将测试数据加载到GWT Widget中?

时间:2011-08-16 20:26:37

标签: java javascript eclipse gwt

我正在使用带有Google Toolkit的eclipse,我创建了一个带有列表框,垂直分割面板和几个按钮的小部件。我想要做的是在列表框中列出的本地目录中有一个文件列表,我希望能够单击一个文件并将其显示在拆分面板的顶部。我发现了关于浏览器和文件IO的困难方法,而且无法使用java.io.File。

我有什么选择?我可以将数据文件放在jar或其他东西中,让小部件以这种方式读取它吗?我需要将其作为测试运行,以实现处理数据的新功能。它不会是任何类型的最终服务器托管应用程序,我不关心将来如何加载实际文件。

任何建议都将不胜感激。

尊敬, DemiSheep

3 个答案:

答案 0 :(得分:1)

使用JUnit创建测试用例!

这是官方Google网站,介绍使用JUnit和varios测试方法进行测试:Google Web Toolkit: Testing。你肯定在这里找到了解决方案^^

答案 1 :(得分:1)

如果您只需要一个硬编码的值列表来直观地测试您的窗口小部件,您可以简单地将这些值放在一个String数组中并从那里加载它。或者您可以使用RequestBuilder从服务器http GET字符串。您可以在war目录中保留一个简单文件(CSV,XML,JSON等),并使用“请求”构建器加载此文件。

来自GWT developer guide的示例代码:

import com.google.gwt.http.client.*;
...

String url = "http://www.myserver.com/getData?type=3";
RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, URL.encode(url));

try {
  Request request = builder.sendRequest(null, new RequestCallback() {
    public void onError(Request request, Throwable exception) {
       // Couldn't connect to server (could be timeout, SOP violation, etc.)
    }

    public void onResponseReceived(Request request, Response response) {
      if (200 == response.getStatusCode()) {
          // Process the response in response.getText()
      } else {
        // Handle the error.  Can get the status text from response.getStatusText()
      }
    }
  });
} catch (RequestException e) {
  // Couldn't connect to server
}

确保继承HTTP模块:

<inherits name="com.google.gwt.http.HTTP" />

答案 2 :(得分:0)

说到GWT,没有这样的东西作为.jar文件发送到浏览器。

获取文件最简单的方法是

  1. 将文件放在服务器上
  2. 通过http-call
  3. 获取它们

    记住适用于GWT的同源政策,因为它是所有javascript限制的基础