如何测试私有变量是否延迟加载



我正在使用JPA和延迟加载变量。我们使用方法级别的注释,变量都是私有的。

在我的自动化测试中,我想要验证有问题的变量在我调用它之前没有被加载。我发现使用PersistenceUnitUtil的参考。方法,但是我不能把变量直接传递给它,因为它是私有的。

我尝试使用getter方法来获取延迟加载的变量以传递给PersistenceUnitUtil,但这似乎表明它已加载,这违背了测试的意义。

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

如果相关,我们使用spring boot和testNG

JPA API PersistenceUnitUtil。isLoaded接受实体对象而不是某个字段值,所以不知道为什么要获取字段/属性的值。例如

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

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

最新更新