缺少PubNub回调

时间:2015-06-18 00:09:32

标签: java pubnub

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

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

如果我尝试从单独的Java客户端发布或订阅该频道,则回调效果很好。

public class FunctionalTest {

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 个答案:

答案 0 :(得分:1)

在Java单元测试中使用PubNub

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

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

这真的不是PubNub问题,就像尝试使用像PubNub这样的异步框架使用单元测试框架编写功能测试一样。