如何从保证响应中删除xml标头

时间:2019-04-24 15:10:15

标签: java xml rest-assured hamcrest serenity-bdd

我正在尝试对返回xml的服务进行一些测试,问题是作为响应,出现了xml内容和带有版本的xml标头。因此,当我尝试使用Matcher.hasXPath进行验证时,我发现错误的结果,因为它应该只包含一个根节点。

试图找到一个配置(例如:SerenityRest.config()。getXmlConfig()),但我不知道在哪里可以找到针对我的问题的特定文档。

actor.should(seeThatResponse(response -> response.body(Matchers.hasXPath(path)))
);

我要删除的内容:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

1 个答案:

答案 0 :(得分:0)

如果响应XML包含2个根节点,您将得到 org.xml.sax.SAXParseException 。您要删除的内容是XML序言,解析器通常会忽略它。

但是您始终可以配置解析器。这是JAXB的示例:

marshaller.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE);