通过Spring访问Cucumber中的CamelContext

时间:2015-10-09 17:32:10

标签: spring groovy apache-camel cucumber-jvm

我想测试我的Apache Camel路由,这些路由在Spring中与Cucumber连接在一起。

我的测试看起来像这样:

@RunWith(SpringJUnit4ClassRunner.class) 
@TestExecutionListeners([DependencyInjectionTestExecutionListener.class])
@ContextConfiguration(locations = ["/cucumber.xml"])
Class TestEnvironment {
    public TestEnvironment(){
        @Autowired
        ProducerTemplate superTemplate
        //more foo
    }

World() {
    new TestEnvironment()
}

Before() {}

Given(~/I want to send a Message "([^"]+)" to my "([^"]+)" Camel Route./) { String greatMessageString, String endpointURI ->
    MockEndpoint fakeEndpoint = getMockEndpoint(endpointURI)
    fakeEndpoint.expectedMessageCount(1)

    superTemplate.sendBody(fakeEndpoint, greatMessageString) //always 'cannot invoke sendBody() on null object' 
}

superTemplate永远不会链接到我的任何Camel路线。所以我尝试用CamelSpringTestSupport扩展TestEnvironment。

Class TestEnvironment extends CamelSpringTestSupport {
    protected AbstactXmlApplicationContext createApplicationContext() {
        return new ClassPathXmlApplicationContext(["/cucumber.xml"])
    }

使用CamelSpringTestSupport扩展类时,template()方法通常可用作ProducerTemplate。但它也没有为我的路线选择CamelContext。模板始终为null。 TestEnvironment的上下文也是如此。

我觉得我已经非常接近,但缺乏一定的注释或其他......感谢新的输入。 干杯

0 个答案:

没有答案