XMLUnit генерирует исключение NullPointerException при создании объекта Diff для действительного xml - PullRequest
0 голосов
/ 07 апреля 2020

Я использую org.custommonkey.xmlunit; (version 1.2). При построении Diff объекта: Diff diff = new Diff(expected, generated);

У меня всегда есть исключение NullPointerException, так как оно завершается с ошибкой this.controlDoc = this.getManipulatedDocument(controlDoc);. Во время отладки я обнаружил, что в первом конструкторе:

public Diff(String control, String test) throws SAXException, IOException {
        this((Reader)(new StringReader(control)), (Reader)(new StringReader(test)));
    }

существуют правильные xmls, однако, когда:

public Diff(Reader control, Reader test) throws SAXException, IOException {
        this(XMLUnit.buildDocument(XMLUnit.newControlParser(), control), XMLUnit.buildDocument(XMLUnit.newTestParser(), test));
    }

, я вижу в отладчике [#document: null]. Почему это так? Я пробовал со многими xmls, даже очень простыми и маленькими, которые я нашел в inte rnet, но ничего не работает.

1 Ответ

0 голосов
/ 07 апреля 2020

О, я только что обнаружил, что XMLUnit.setIgnoreWhitespace(true); вызывает эту проблему, потому что в проекте я использую библиотеку Saxon в древней версии, и это было исправлено в версии 8.9, однако это:

XMLUnit.setTransformerFactory("org.apache.xalan.processor.TransformerFactoryImpl");

очень помогает.

...