2013-07-05 5 views
0

Я часто требование ждать какой-то процесс асинхронной закончен в моем разъеме DevKit (который затем вызывает IsConnected вернуть истинный)Получение функциональных модульных тестов, чтобы ждать, пока разъем DevKit не подключен

@ValidateConnection 
public boolean isConnected() { 
    return isConnected; 
} 

Как я могу получить мой функциональный модульный тест, чтобы подождать, пока это не будет завершено. Я бы подумал, что единичный тест будет ждать, пока все соединители в моем потоке не будут «подключены».

Банкоматы Я использую сон в тесте на единицу, чтобы обойти это в моем FunctionalTestCase

Thread.sleep(5000); 

assertEquals(1, targetEngineApplication.getNumberOfMessagesReveived()); 

Edit_ _ __ _ __ _ __ _ __ _ __ _ ____

con Код ошибки:

@Connect 
public void connectMethod(final String configFileLocation) throws ConnectionException { 

    System.out.println("Connect called with config:" + configFileLocation); 
    try { 
     Engine.doInitialise(configFileLocation); 
     Engine.doStart(); 
    } catch (InitialisationException e) { 
     throw new ConnectionException(ConnectionExceptionCode.UNKNOWN, "0", e.getCause().getMessage(), e); 
    } catch (StartingException e) { 
     throw new ConnectionException(ConnectionExceptionCode.UNKNOWN, "0", e.getCause().getMessage(), e); 
    } 
    // this will also tell the unit tests to start 
    isConnected = true; 
} 

ответ

2

В этом случае: при запуске функционального теста все, что нужно инициализировать и запустить, - это.

Понятие «подключенных» для разъемов DevKit отличается: соединение происходит по требованию, когда используется процессор сообщений.

Итак, что вы хотите дождаться в своем тесте: что была выполнена последовательность инициализации соединителя или был выполнен конкретный процессорный метод?

Для справки глава 12 из Mule in Action охватывает методы тестирования, которые позволяют работать с асинхронными сценариями.

+0

Hi David! Мой соединитель должен объединить внешнюю систему, ожидающую успешного входа в журнал. – Nikos

+0

Как аннотируется метод, в котором этот журнал происходит? –

+0

Я добавил в edit :) – Nikos