模拟 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 文档中的替换为另一个端点部分:
我正在尝试验证我需要阻止端点启动的 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 文档中的替换为另一个端点部分: