GWT:单元测试RequestBuilder时出现404错误

时间:2013-09-01 12:56:47

标签: gwt

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

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

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

2 个答案:

答案 0 :(得分:4)

静态资源可以与模块捆绑,方法是将它们放在the module's public path中。

答案 1 :(得分: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);
    }

}