如何在JUnit单元测试中构建Document对象测试XML转字符串方法
构建XML Document对象的最简实现(JUnit测试用)
你可以直接使用JDK自带的javax.xml.parsers包下的类来构建Document对象,不需要额外依赖,这是最简的实现方式。以下是完整的JUnit测试代码示例:
import org.junit.Test; import org.w3c.dom.Document; import org.w3c.dom.Element; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import static org.junit.Assert.assertEquals; public class XmlUtilsTest { // 替换为你的工具类对应的测试类名 @Test public void convertDocumentToString_shouldReturnCorrectXmlString() throws Exception { // 初始化Document构建器 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); // 创建空Document对象 Document document = builder.newDocument(); // 构建测试用XML结构 Element root = document.createElement("root"); document.appendChild(root); Element childNode = document.createElement("test-node"); childNode.setTextContent("sample content"); root.appendChild(childNode); // 调用待测试的转换方法 String result = XmlUtils.convertDocumentToString(document); // 替换为你的工具类类名 // 断言结果匹配预期(注意Transformer默认会输出XML声明头) String expectedXml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<root><test-node>sample content</test-node></root>"; assertEquals(expectedXml, result); } }
核心说明
- 这套方案完全基于JDK原生API,不需要引入Mockito或其他第三方库
- 可根据测试需求自由扩展XML结构,比如给节点添加属性、创建多层嵌套节点等
- 测试方法直接抛出
Exception是为了简化异常处理,JUnit会自动捕获异常并标记测试失败 - Transformer输出的XML默认会包含声明头,断言时需要对应上该格式
内容的提问来源于stack exchange,提问作者britney1994
相关产品推荐
相关产品推荐

