我有一大堆手工制作的 JAXB 注释文件和一些手工制作的 xsd 文件。我还有一些示例 xml 文件,它们应该创建大多数 JAXB bean 并设置大多数字段。
如何测试是否设置了所有重要 (95%) 属性?我不想手动测试每个 bean 的每个属性。
如果手工制作的 bean 与 xsd 文件匹配,我是否也可以或作为替代测试?
最佳答案
有几种方法可以处理这个问题,最终应该为您提供某种自动化;但这完全取决于您的类和 XSD 的复杂程度。
我将从使用 JAXB 的 schemagen 开始针对您已经拥有的一组类(class)。它可能需要您可能必须添加到当前代码库中的其他注释。有了该 XSD,您可以(主要是手动)比较两个 XSD 以查看它们是否相似。如果在您的模型 XSD 中使用 choices、all、abstractions、groups 等,事情可能会变得棘手。
然后我会使用 XSD 工具:
- 为给定的根元素从这两个集合生成所有可能的 XPath,以确保您获得相同的覆盖范围。
- 使用其中一个 XSD 自动生成 XML 示例,具体取决于哪个是您的黄金副本,然后使用另一个 XSD 对其进行验证 - 以发现不一致之处,并使用您现有的代码解码 XML。<
一旦解码,如 Blaise 所述,编码和比较(理想情况下使用模式感知 XML 比较,然后 XML 感知,文本比较很可能是无用的)。
关于java - JAXB 测试手工制作的 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9585666/