>

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

    응답 XML에 2 개의 루트 노드가 포함 된 경우org.xml.sax.SAXParseException이 표시됩니다. 제거하려는 내용은 XML 프롤로그이며 일반적으로 파서는 무시합니다.

    하지만 항상 파서를 구성 할 수 있습니다. JAXB의 예는 다음과 같습니다.

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

관련 자료

  • 이전 rsync를 사용할 때 다른 ssh 포트를 지정할 수 있습니까?
  • 다음 javascript - Momentjs HTTP 서버 결과가 현재 올바르게 출력되지 않습니다