Утверждение XPath всегда будет передаваться в классе CamelTestSupport - PullRequest
0 голосов
/ 01 мая 2018

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

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

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

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

_resultEndpoint.assertIsSatisfied();

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

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

Приветствия

1 Ответ

0 голосов
/ 02 мая 2018

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

.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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...