Утверждение XPath всегда будет передаваться в классе CamelTestSupport

Я новичок в тестировании Camel, и этот тест всегда проходит независимо от того, как я изменяю сообщение. Если бы вы могли сказать мне, что я делаю неправильно, я был бы очень благодарен.

Вот утверждение:

XPathExpression xpath = new XPathExpression("/project/phases/phase/@id='CFA001'");
xpath.setResultType(Boolean.class);     
_resultEndpoint.allMessages().body().matches(xpath);

Я проверяю это с:

_resultEndpoint.assertIsSatisfied();

Я попробовал различные другие версии, подходы. Никто из них не работал так, как ожидалось.

Вопрос в том, как сделать тест XPath для содержимого (тела) (ожидаемого) XML-сообщения.

ура

1 ответ

Хорошо... это кажется немного странным для меня, но добавив:

.expectedMessageCount(1); 

... к утверждению, кажется, решить проблему. По крайней мере, тест, который предполагается провалиться, не проходит. Итак, вот как должно выглядеть полное утверждение:

MockEndpoint в качестве члена класса:

@EndpointInject(uri = "mock:result")
protected MockEndpoint _resultEndpoint;

Утверждение:

_resultEndpoint.expectedMessageCount(1);
XPathExpression xpath = new XPathExpression("/project/phases/phase/@id='CFA001'");
xpath.setResultType(Boolean.class);
_resultEndpoint.allMessages().body().matches(xpath);
Другие вопросы по тегам