2

我使用 GWT RequestBuilder,出于测试目的,我想在服务器中加载一个 json 文件。它与 DevMode 完美配合,但使用 GWTTestCase 会引发 404 错误。

使用 RPC,有一个修复添加<servlet path=".." class="..."/>,但是我可以用静态内容做什么?

我可以轻松使用@TextResource,但这不是我的 UnitTest 的目标(实际上是功能测试)

4

2 回答 2

4

通过将静态资源放在模块的公共路径中,可以将它们与模块捆绑在一起

于 2013-09-01T15:03:25.057 回答
1

我(再次)使用托马斯的答案来解决问题。我的模块是io.robusta.fora.comments.Comment.gwt.xml并且我已将我的 user.json 文件放入io.robsuta.fora.comments.resources包中。

我不得不在 Comment.gwt.xml 文件中添加:<public path="resources"/>

然后 GWTTestCase 很简单:

public class GwtRestClientTest extends GWTTestCase{

    @Override
    public String getModuleName() {
        return "io.robusta.fora.comments.Comments";
    }


    public void testGET(){

         String base =   GWT.getModuleBaseURL();
         System.out.println(base); //-> http://192.168.0.10:53551/io.robusta.fora.comments.Comments.JUnit/

        GwtRestClient client = new GwtRestClient(base); //base url
        AsyncCallback<String> cb = new AsyncCallback<String>() {

            @Override
            public void onSuccess(String result) {
                System.out.println(result);//->{id:1,email:"jo@robusta.io"}
                finishTest();

            }

            @Override
            public void onFailure(Throwable caught) {
                caught.printStackTrace();
            }
        };

        client.GET("user.json", null, cb);//fetch my json file with no params
        delayTestFinish(3000);
    }

}
于 2013-09-01T16:20:28.747 回答