XPath 断言将始终通过 CamelTestSupport class

XPath assertion will always pass in CamelTestSupport class

我是 Camel 测试的新手,无论我如何更改消息,这个测试总是通过。如果你能告诉我我做错了什么,我将不胜感激。

这是断言:

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

我测试它:

_resultEndpoint.assertIsSatisfied();

我确实尝试过各种其他版本和方法。 None 其中的工作按预期进行。

问题是,如何对(预期的)XML 消息的内容(正文)进行 XPath 测试

干杯

好吧……我觉得有点奇怪,但是补充一下:

.expectedMessageCount(1); 

...断言似乎解决了问题。至少假设失败的测试失败了。所以,完整的断言应该是这样的:

MockEndpoint 作为 class 成员:

@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);