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

时间:2020-03-05 18:50:01  来源:igfitidea点击:

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

我是否应该将DTD作为字符串包含在单元测试中,以避免对其进行依赖,或者是否有更聪明的方法来做到这一点?

解决方案

回答

如果程序在正常执行期间针对DTD验证了XML,那么我们应该仅从程序将其获取的任何地方获取DTD。

如果不是,并且DTD非常短(只有几行),那么将其作为字符串存储在代码中可能是可以的。

否则,我会将其放在一个外部文件中,并让单元测试从该文件中读取它。

回答

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

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