gpt4 book ai didi

java - 缺少 PubNub 回调

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:59:01 25 4
gpt4 key购买 nike

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

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

如果我尝试从单独的 Java 客户端发布或订阅 channel ,回调会正常工作。

公共(public)类功能测试{

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();
}

}

最佳答案

在 Java 单元测试中使用 PubNub

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

当您调用 publish 时,该方法会立即返回,但工作会排队,这就是我们使用回调、测试退出、pubnub 对象超出范围并且回调永远不会触发的原因。

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

关于java - 缺少 PubNub 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30904497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com