java - 如何测试GWT的RPC调用?

标签 java unit-testing gwt

我无法理解如何测试 GWT 的异步 RPC 调用。在谷歌网站上我找到了示例代码,但它并不全面:

public void testTimer() {
  Timer timer = new Timer() {
     public void run() {
       finishTest();
    }
   };
  delayTestFinish(500);
  timer.schedule(100);
}

我必须在哪里调用远程 RPC 服务?为什么我们需要调度计时器(而不是使用 run() 方法)?

感谢您的建议。

最佳答案

您必须将 finishTest 放入 onSucess 方法中,并将测试延迟大约 500 毫秒(或者您认为需要的时间)

这是一个示例,它应该如何工作。

    private void refreshWatchList() {
        StockPriceService stockPriceSvc = GWT.create(StockPriceService.class);

        AsyncCallback<StockPrice[]> callback = new AsyncCallback<StockPrice[]>() {
          public void onFailure(Throwable caught) {
            assert(false) : "The test failed because the RPC service returned an error
          }

          public void onSuccess(StockPrice[] result) {
             //the test was a sucess so we tell the Unittest case to finish (with success)
             finishTest();  
          }
        };

        // Make the call to the stock price service.
        stockPriceSvc.getPrices(stocks.toArray(new String[0]), callback);

         //delay the finish of the test by 500ms
         //if finishTest() isn't call before 500ms passed, the test will fail    
         delayTestFinish(500); 
      }

PS:您不需要计时器来测试 RPC 调用

关于java - 如何测试GWT的RPC调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9002382/

相关文章:

java - 如何使用 do-while 循环再次检查用户输入?

java - 需要解释循环java递归代码

entity-framework - 内存数据库中的 Entity Framework (代码优先)用于单元测试

java - 用于 Vaadin Web 应用程序的简单 Java 图形 API

jquery - Jquery的slideDown()函数出现问题

java - GWT TextBox、DateBox 等不共享相同的基本输入类

java - 使用mockito在Spring中测试更大的服务

python - 如何在单元测试中测试 Airflow dag?

android - 用于在 Android 中离线测试服务器响应的透明代理

java - 用 Java 封装 GMP