如果私有,如何测试变量是否是延迟加载的?

时间:2015-07-08 15:02:29

标签: java jpa testing

我正在使用JPA并且懒得加载变量。使用方法级别注释,变量都是私有的。

在我的自动化测试中,我想验证有问题的变量在我打电话之前没有加载。我找到了使用PersistenceUnitUtil.isLoaded方法的参考,但由于它是私有的,我不能直接传递它。

我尝试使用我的getter方法来获取延迟加载的变量以传递给PersistenceUnitUtil,但是看起来要加载它会使测试点失败。

有没有其他方法可以验证是否未加载此私有方法?我想我可以使用反射在私有变量处达到峰值,但这看起来很复杂,必须有一个更简单的方法。

如果相关使用spring boot和testNG。

1 个答案:

答案 0 :(得分:1)

JPA API PersistenceUnitUtil.isLoaded将ENTITY对象取为某些字段值,因此不清楚为什么要说明获取字段/属性的值。例如,

boolean loaded = emf.getPersistenceUnitUtil().isLoaded(myEntity, "someField");

该方法的javadoc无法区分“someField”是私有还是其他,这是为了实现处理