【问题标题】:jaxb xjc - how to generate unit test filesjaxb xjc - 如何生成单元测试文件
【发布时间】:2018-01-26 11:33:10
【问题描述】:

我的一个项目https://github.com/maithilish/gotz 使用 JAXB 并从使用 XJC 和 maven-jaxb2-plugin 的模式生成类。由于生成的类是基本的 POJO,是否可以通过 xjc 或 jaxb 插件为生成的类生成单元测试用例。

【问题讨论】:

  • 您对这样的单元测试有何期望?生成的代码已经有保证的记录行为。
  • 代码覆盖率
  • 生成到单独的源目录(例如 target/generated-sources)并将其从覆盖率指标分析中排除。
  • 排除它们不是一种选择。即使生成的代码有保证的行为,我仍然需要测试它们以避免任何意外的代码更改。没什么大不了的,我可以写测试用例,但在这之前我只想知道xjc或maven-jaxb2-plugin是否有任何生成测试用例的功能。
  • 我认为没有这样的功能。但同样,这将毫无意义,因为如果有代码更改并且单元测试是自动生成的,那么测试也会自动更改。此外,您还是会注意到代码发生了变化,因为客户端代码无法编译。

标签: java unit-testing jaxb xjc


【解决方案1】:

maven-jaxb2-plugin 的作者在这里。

maven-jaxb2-plugin 中没有这样的功能,坦率地说,可能永远不会有。我真的无法想象,你想通过这样的单元测试来实现什么。 XJC 生成的模式派生类通常像石头一样愚蠢,实际上没有什么可以测试的。从我的角度来看,仅为“代码覆盖率”生成测试是不合理的。

但是,我有一个提示可能对您有所帮助。我有时做的是所谓的“往返”测试,我在其中获取一些示例 XML,将其解组,然后将其编组并与原始 XML 进行比较。如果您想比较对象结构,JAXB2 Basics 可以生成很好的深度 equals 方法。

如果您想确保您的模式派生类与您的 XML 相匹配,那么往返测试会很有意义。但是你真的不需要为此生成单元测试。

【讨论】:

  • 感谢出色的 JAXB2 插件。我将使用往返测试,因为它可以确保及早发现对架构或架构派生类的任何意外更改。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-25
  • 1970-01-01
  • 2021-10-12
  • 1970-01-01
  • 2013-01-04
  • 2015-09-01
相关资源
最近更新 更多