Wiremock和XPath属性测试

问题描述 投票:0回答:1

假设我有一个包含以下代码段的XML请求

<foo bar="12356"/>

我的服务将此代码段发送给另一个服务来执行操作。该服务需要具有foo属性且没有文本节点的bar节点。以下表达式恰好匹配该节点]

//foo[@bar='12356']

问题是Wiremock期望文本节点出现在匹配的foo节点中,因此,它认为先前的表达式不匹配。

使用wiremock如何测试XML以匹配属性而不是文本节点?

java xml xpath wiremock
1个回答
0
投票

根据XPath规范,名称空间很重要。如果xml文件如下

<?xml ...>
<Envelope>
    <foo bar="12356"/>
</Envelope>

然后,所提供的XPath表达式将起作用。但是,一旦添加了xmlns=声明,您的节点就不再是foo,而是"[xmlns]":foo。结果,//foo仅匹配未前缀的foo元素。

© www.soinside.com 2019 - 2024. All rights reserved.