2015-06-18 2 views
3

Я выполняю функциональные тесты для своего проекта в java.Отсутствует обратный вызов PubNub

PubNub не выполняет обратные вызовы, когда я пытаюсь подписаться или опубликовать в рамках тестового метода, даже если соединение выполнено нормально.

Если я попытаюсь опубликовать или подписаться на канал от отдельного java-клиента, обратный вызов будет работать хорошо.

общественного класс 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

Пожалуйста, разместите это с помощью под-ключа на [email protected], и мы опубликуем любую соответствующую информацию об этом сообщении. –

ответ

1

Использование PubNub внутри Java Test Unit

Испытания на JUnit завершает до завершения вызова Pubnub. Поставьте спать 60 секунд в одном из тестовых случаев и посмотрите, получаете ли вы публикацию (не то, что она занимает 60 секунд, просто хочу, чтобы вы приостановили достаточно времени).

Когда вы вызываете публикацию, метод возвращается немедленно, но работа помещается в очередь, поэтому мы используем обратный вызов, тестовые выходы, объект pubnub выпадает из области видимости и обратный вызов никогда не срабатывает.

Это действительно не проблема PubNub, а попытка написать функциональный тест с помощью модульной тестовой среды с использованием асинхронной структуры, такой как PubNub.

Смежные вопросы