我使用 GWT RequestBuilder,出于测试目的,我想在服务器中加载一个 json 文件。它与 DevMode 完美配合,但使用 GWTTestCase 会引发 404 错误。
使用 RPC,有一个修复添加<servlet path=".." class="..."/>
,但是我可以用静态内容做什么?
我可以轻松使用@TextResource
,但这不是我的 UnitTest 的目标(实际上是功能测试)
我使用 GWT RequestBuilder,出于测试目的,我想在服务器中加载一个 json 文件。它与 DevMode 完美配合,但使用 GWTTestCase 会引发 404 错误。
使用 RPC,有一个修复添加<servlet path=".." class="..."/>
,但是我可以用静态内容做什么?
我可以轻松使用@TextResource
,但这不是我的 UnitTest 的目标(实际上是功能测试)
我(再次)使用托马斯的答案来解决问题。我的模块是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);
}
}