有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java缺少PubNub回调

我正在用java为我的项目执行功能测试

当我尝试在测试方法中订阅或发布时,PubNub没有进行回调,即使连接很好

如果我试图从一个单独的java客户机发布或订阅该频道,那么回调会很好地工作

公共类功能测试{

private Logger logger = LoggerFactory.getLogger(FunctionalTest.class);

@Test
public void verifyCreateSuccess() throws JAXBException,IOException {

    Pubnub pubnub = new Pubnub("publisher-key", "subscriber-key");

    Callback callback = new Callback() {
       public void successCallback(String channel, Object response) {
           logger.info("PUBLISHER::" + response.toString());
       }
       public void errorCallback(String channel, PubnubError error) {
           logger.info("PUBLISHER::" + error.toString());
       }
   };

   try {
       pubnub.publish("foo-test",new JSONObject().put("test", 1),callback);
   } catch (JSONException e) {
       e.printStackTrace();
   }

}

}


共 (1) 个答案

  1. # 1 楼答案

    在Java单元测试中使用PubNub

    JUnit测试在Pubnub调用完成之前完成。在其中一个测试用例中休眠60秒,看看你是否得到了发布(并不是说需要60秒,只是想确保你暂停足够的时间)

    调用publish时,该方法立即返回,但工作已排队,这就是为什么我们使用回调,测试退出,pubnub对象超出范围,回调永远不会触发

    这真的不是PubNub的问题,而是尝试使用一个异步框架(比如PubNub)编写一个单元测试框架的功能测试