JAXB测试手工制作的豆子

时间:2012-03-06 14:32:38

标签: java xml unit-testing xsd jaxb

我有一大堆手工制作的JAXB注释文件和一些手工制作的xsd文件。我还有一些示例xml文件,它们应该创建大多数JAXB bean并设置大多数字段。

如何测试是否设置了所有重要(95%)属性?我不想亲自测试每个bean的每个属性。

如果手工制作的豆子与xsd文件匹配,我可以也可以作为替代测试吗?

2 个答案:

答案 0 :(得分:2)

有几种方法可以解决这个问题,最终应该为您提供某种自动化;但这一切都取决于你的课程和XSD有多复杂。

我首先要使用JAXB的schemagen来对付已有的类。它可能需要您可能必须添加到当前代码库的其他注释。有了这个XSD,您可以(主要是手动)比较两个XSD以查看它们是否相似。如果在您的模型XSD中使用选择,所有,抽象,组等,事情可能会变得棘手。

然后我会使用XSD工具:

  • 从这两个集合生成所有可能的XPath,用于给定的根元素,以确保您具有相同的覆盖率。
  • 使用其中一个XSD自动生成XML样本,具体取决于哪个是您的黄金副本,然后使用其他XSD验证它 - 发现不一致,以及使用现有代码解组XML。

一旦解组,就像Blaise描述的那样,编组和比较(理想情况下使用模式识别XML比较,然后是XML识别,文本比较最有可能是没用的。)

答案 1 :(得分:1)

您可以解组控件XML文档,然后将它们编组回XML。然后比较两个XML文档以确保它们包含相同的内容。这将验证往返案例。