模拟 XMPP 端点

Mocking XMPP endpoints

我正在尝试验证我需要阻止端点启动的 Camel 路由,尤其是 XMPP,因为它在其 URI 中包含具体的主机信息。不幸的是,我似乎不知道该怎么做。

我的测试class如下:

@RunWith(CamelSpringJUnit4ClassRunner.class)
@ContextConfiguration(
        classes = {
                ApplicationConfig.class
        },
        loader = CamelSpringDelegatingTestContextLoader.class)
@UseAdviceWith
@MockEndpointsAndSkip
public class XMPPRouteBuilderTest {

    @Autowired
    ApplicationContext applicationContext;

    @Autowired
    CamelContext camelContext;

    @Test
    public void testConfigure() throws Exception {
        camelContext.start();
        Collection<Endpoint> endpoints = camelContext.getEndpoints();
    }
}

每当我调用 start() 时,实际端点都会启动,这会导致 XMPP 路由失败并出现主机未找到异常;我原以为模拟会取代真实的。

谁能指出我做错了什么?

最好的, 爱德华多

@MockEndpointsAndSkip 仅适用于生产者(例如不是消费者),因此不会模拟来自端点的所有路由。

您可以将 replaceFromWith 与 advice-with 构建器一起使用。有关示例,请参阅官方 Camel 文档中的替换为另一个端点部分: