Ho intenzione di creare un XML da una stringa. SembraCome generare un ParserConfigurationException durante la creazione di un nuovo file xml tramite DocumentBuidlerFactory
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
public Document createCompleteExportXml(String xmlFilename, String content) {
try {
DocumentBuilderFactory documentFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = documentFactory.newDocumentBuilder();
//create the XML file here
} catch (ParserConfigurationException pce) {
LOGGER.trace("parsing error ", pce);
}
}
Ora devo verificare se l'eccezione può essere catturata in un test di Junit.
@Test(expected=ParserConfigurationException.class)
public void createCompleteExportXmlWithParseConfigurationException() {
String xmlFilename = "junitExportTestWithParseConfigurationException.xml";
String content = "any content";
XmlFileWriter writer = new XmlFileWriter();
Document doc = writer.createCompleteExportXml(xmlFilename, content);
}
Come posso fare questo test lanciare il ParserConfigurationException
?
Rendo la mia domanda più concreta: come posso rendere documentFactory.newDocumentBuilder() non in grado di funzionare, perché "non è possibile creare un DocumentBuilder che soddisfi la configurazione richiesta."? Dov'è la configurazione? Come posso cambiarlo intenzionalmente in uno sbagliato?
Quale classe concreta è il 'documentFacory'? – Jens
Non lo so. Ho appena importato i pacchetti e funzionano. Come posso vedere quale classe concreta viene utilizzata? – user3778446
Prova ad aggiungere 'System.out.println (documentFactory.getClass(). GetName())'. Quindi dovresti ottenere il nome della classe concreato o usare il debugger. Questo ti mostrerà il nome della classe. – Jens