Я написал тестовый пример для своих маршрутов, как описано unit-testing-with- apache -camel . см. раздел / пункт 4. Он проверяет маршруты с помощью насмешек. Наш проект использует плагин EclEmma Java code cover 3.1.2 в eclipse для измерения покрытия кода. Моя проблема заключается в том, как я убедил этот плагин включить эти фиктивные тестовые маршруты в покрытие кода. В настоящее время его вообще не рассматривают?
У нас есть пакет: com.company.myapp.routes, и я создал пакет com.company.myapp.routes.mock и написал там макеты для всех маршрутов в предыдущем пакете. И затем в моем com.company.myapp.test.routes я имею в виду эти насмешки и использую их, как описано выше по ссылке.
Инструмент покрытия кода показывает покрытие для моего com.company.myapp.routes.mock (макет пакета) как 100%, но 0% для пакета com.company.myapp.routes.
Скопируйте и вставьте соответствующую часть из ссылки:
public class SampleMockRoute extends RouteBuilder {
public void configure() throws Exception {
from("direct:sampleInput")
.log("Received Message is ${body} and Headers are ${headers}")
.to("mock:output");
}
}
public class SampleMockRouteTest extends CamelTestSupport {
@Override
public RoutesBuilder createRouteBuilder() throws Exception {
return new SampleMockRoute();
}
@Test
public void sampleMockTest() throws InterruptedException {
String expected="Hello";
/**
* Producer Template.
*/
MockEndpoint mock = getMockEndpoint("mock:output");
mock.expectedBodiesReceived(expected);
String input="Hello";
template.sendBody("direct:sampleInput",input );
assertMockEndpointsSatisfied();
}
}