在单元测试中验证XML的最佳方法是什么?

Cor*_*kie 9 xml language-agnostic dtd unit-testing

我有一个类,它有一个ToString生成XML 的方法.我想对它进行单元测试,以确保它生成有效的xml.我有一个DTD来验证XML.

我应该在单元测试中将DTD作为字符串包含在内以避免依赖它,还是有更聪明的方法来做到这一点?

Eli*_*ght 6

如果您的程序在正常执行期间针对DTD验证XML,那么您应该从程序获取它的任何地方获取DTD.

如果没有,并且DTD非常短(只有几行),那么将其作为字符串存储在代码中可能没问题.

否则,我会把它放在一个外部文件中,并让你的单元测试从该文件读取它.


Whe*_*lie 6

我过去使用过XmlUnit,发现它很有用.

它可用于根据模式验证XML或将XML与字符串进行比较.理解XML的解析规则非常聪明.例如,它知道"<e1 />"等同于"<e1> </ e1>",并且可以配置为忽略或包含空格.