【发布时间】:2014-05-02 18:00:00
【问题描述】:
我有以下RouteBuilder 类,我在这里使用依赖注入。如何测试此路线构建器?我正在使用 JUnit 和骆驼测试类。
public class TestRoute extends RouteBuilder {
private ServiceConfiguration serviceConfiguration;
public TestRoute(ServiceConfiguration serviceConfiguration) {
this.serviceConfiguration = serviceConfiguration;
}
@Override
public void configure() throws Exception {
String incomingURI = serviceConfiguration.getQueueConfiguration().getURI();
String outgoingURI = serviceConfiguration.getHTTPConfiguration().getURI();
from(incomingURI).
setHeader(Exchange.HTTP_METHOD, constant("PUT")).setHeader(Exchange.CONTENT_TYPE, constant("application/json")).
to(outgoingURI);
}
}
我的想法:
创建一个 testConfiguration 扩展 ServiceConfiguration 并传递它。但为此我需要设置所有配置,因为serviceConfiguration 包含许多其他类。我可以在这里使用Mockito 吗?什么是正确且简单的测试方法?
编辑:我使用的是现有路线,因此我不必再次编写它。看起来这不是骆驼测试的正确方法。看我的测试课。当然,它不起作用。
public class RabbitMQRouteTest extends CamelTestSupport {
@Mock
ServiceConfiguration serviceConfiguration;
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
System.out.println("testing");
return new TestRoute(serviceConfiguration);
}
@Test
public void testConfigure() throws Exception {
System.out.println("test");
when(serviceConfiguration.getName()).thenReturn("file://target/inbox");
template.sendBodyAndHeader("file://target/inbox", "Hello World",Exchange.FILE_NAME, "hello.txt");
Thread.sleep(1000);
File target = new File("target/outbox/hello.txt");
assertTrue("File not moved", target.exists());
}
}
【问题讨论】:
标签: unit-testing junit apache-camel mockito