我试图验证我需要阻止端点启动的Camel路由,尤其是XMPP,因为它在URI中包含具体的主机信息。不幸的是,我似乎无法弄明白。
我的测试课如下:
@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路由失败并发现主机未找到异常;我期待嘲笑取代真实的嘲笑。
任何人都可以建议我做错了吗?
最佳, 爱德华多
答案 0 :(得分:1)
@MockEndpointsAndSkip
仅适用于生产者(例如非消费者),因此来自端点的所有路径都不会被模拟。
您可以将replaceFromWith
与建议使用构建器一起使用。有关示例,请参阅官方Camel文档中的从另一个端点替换部分: