我们最近将我们的代码库从 2005 版本升级到最新版本的 hibernate 。
因此,我们发现许多软件包中的代码覆盖率显着降低。这些包几乎都是映射到hibernate对象的POJO,区别似乎在于getters和setters的覆盖范围。这些对象中的大多数都没有直接进行单元测试,因此之前的报道大部分来自它们在一些集成测试中的使用,导致 hibernate 命中这些 getter 和 setter。
有没有人见过类似的事情发生? hibernate 填充那些可以解释这一点的对象的方式是否发生了变化?
大多数字段都设置为 lazy=false,所以这可能是不可能的。
我们正在使用 testng、cobertura 和 jdk 1.6。
最佳答案
我不是专家,但也许最新版本的 hibernate 会在你的类的字段中注入(inject)值,而以前的版本使用 getter 和 setter ...
你把注释放在哪里了?
在田野上
@Id private Long id;
还是在方法上?
@Id public Long getId() { return id; }
关于java - hibernate 升级后代码覆盖率显着下降 - 未涵盖 getter 和 setter - 有什么想法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7847617/