让功能单元测试等到devkit连接器连接

时间:2013-07-05 14:17:37

标签: mule mule-studio devkit

我经常需要等待一些异步进程在我的devKit连接器中完成(然后导致isConnected返回true)

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

如何让功能单元测试等到完成后再进行。我原本以为单元测试会等到我的流程中的所有连接器都“连接”。

Atm我正在单元测试中使用sleep来绕过我的FunctionalTestCase

Thread.sleep(5000);

assertEquals(1, targetEngineApplication.getNumberOfMessagesReveived());

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

连接代码:

@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;
}

1 个答案:

答案 0 :(得分:2)

情况就是:当功能测试开始时,需要初始化和启动的所有内容都是。

DevKit连接器的“已连接”概念不同:使用消息处理器时,按需连接。

那么你想在测试中等待什么:连接器的初始化序列已经完成或者某个处理器方法已被执行了?

为了记录,Mule in Action的第12章介绍了允许处理异步场景的测试技术。