【问题标题】:VerifyError while JUnit test involving Document and DocumentBuilder涉及 Document 和 DocumentBuilder 的 JUnit 测试时的 VerifyError
【发布时间】:2025-11-27 10:35:02
【问题描述】:

我的班级

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = null;
db = dbf.newDocumentBuilder(); //java.lang.verifyError here
Document doc = db.newDocument();

我的类测试

documentBuilderFactory = PowerMockito.mock(DocumentBuilderFactory.class);
PowerMockito.mockStatic(DocumentBuilderFactory.class);  
PowerMockito.when(DocumentBuilderFactory.newInstance()).thenReturn(documentBuilderFactory);
document = PowerMockito.mock(Document.class);
//documentBuilder = PowerMockito.mock(DocumentBuilder.class);
//PowerMockito.when(documentBuilder.newDocument()).thenReturn(document);

当我从 MyClassTest 中删除注释部分时,VerifyError 出现在测试类的最后一行。任何想法如何解决这个问题?我正在附加错误的堆栈跟踪。

java.lang.VerifyError: javax/xml/parsers/DocumentBuilder.newDocument()Lorg/w3c/dom/Document;

【问题讨论】:

    标签: java junit java-7


    【解决方案1】:

    java.lang.VerifyError 可能是针对与运行时使用的库不同的库进行编译时的结果。

    您似乎遇到了类路径问题。修复它应该可以解决问题。确保在任何地方都有相同版本的 jar。

    【讨论】: