我有一条路线
from("sql:classpath:sql/selectAccounts.sql?outputClass=Account&delay={{EXEC_INTVAL_MS:60000}}&useIterator=false")
.routeId(ROUTE_MIGRATE_ACCOUNTS)
.to("log:accounts?showAll=true&level=DEBUG")
.setHeader(HEADER_MIGRATION_TYPE, constant(HEADER_MIGRATION_TYPE_ACCOUNTS))
.setHeader(HEADER_API_TYPE, constant(HEADER_API_TYPE_ADRE))
.setHeader(SQL_STORED_TEMPLATE, constant("${header.apiType}.MIGRATION_STARTET(INTEGER ${header.id})"))
.to("direct:markStarted")
from("direct:markStarted").routeId(ROUTE_MARK_STARTED_IN)
.split(body())
.setHeader("id", convertToExpression(simple("${body.id}"),Integer.class))
.to("sql-stored:template").id(ID_MARK_STARTED_TO_SQL_STORE)
.log("${header.id} marked as migration started");
带标题
static final String HEADER_API_TYPE = "apiType";
static final String HEADER_API_TYPE_ADRE = "ADRE_API";
我想测试一下,调用sql-stored时是否使用了预期的标头,其中占位符a是这样填充的
地址_API.迁移_启动(整数12)
我发现
mockSQLStored.expectedHeaderValuesReceivedInAnyOrder(SQL_STORED_TEMPLATE,
"${header.apiType}.MIGRATION_STARTET(INTEGER ${header.id})",
"${header.apiType}.MIGRATION_STARTET(INTEGER ${header.id})");
像这样完美工作的东西。
我如何检查填充了参数的标题?
1条答案
按热度按时间1mrurvl11#
实际上你不需要这样做,因为这将测试Camel框架的底层sql组件,这已经测试过了。相反,你可以测试填充的“id”头是否包含预期的数字(从主体中提取),在本例中是12: