java – JUnit测试需要调用GWT的URL.encode()服务器端

我想为我的一个调用com.google.gwt.http.client.URL.encode(String s)方法的GWT类编写一个JUnit测试.这引发了我的异常:

java.lang.UnsatisfiedLinkError: com.google.gwt.http.client.URL.encodeImpl(Ljava/lang/String;)Ljava/lang/String;
    at com.google.gwt.http.client.URL.encodeImpl(Native Method)
    at com.google.gwt.http.client.URL.encode(URL.java:155)
    at com.example.foo.QueryBuilder.appendParams(QueryBuilder.java:44)

我知道这个URL.encode使用基于浏览器实现的延迟绑定是有效的,但我也需要为这些类编写测试.不幸的是,扩展GWTTestCase还不足以解决这个问题.

我怎样才能使我的JUnit测试工作?

最佳答案 你能使用Unitils并创建一个模拟URL吗?我知道URL是最终的,因此它不能被子类化,但我模糊地回想起Unitils的模拟实用程序应该能够解决这个问题.

http://www.unitils.org/tutorial-mock.html有详细信息.

点赞