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 楼答案
在Java单元测试中使用PubNub
JUnit测试在Pubnub调用完成之前完成。在其中一个测试用例中休眠60秒,看看你是否得到了发布(并不是说需要60秒,只是想确保你暂停足够的时间)
调用publish时,该方法立即返回,但工作已排队,这就是为什么我们使用回调,测试退出,pubnub对象超出范围,回调永远不会触发
这真的不是PubNub的问题,而是尝试使用一个异步框架(比如PubNub)编写一个单元测试框架的功能测试