在单元测试中使用反射是不好的做法吗?
在过去的几年里,我一直认为在Java中,反射在单元测试中被广泛使用。由于必须检查的一些变量/方法是私有的,因此有必要以某种方式读取它们的值。我一直认为反射API也用于此目的。
上周我不得不测试一些软件包,因此编写了一些JUnit测试。一如既往,我使用Refperion来访问私有字段和方法。但是我的主管检查了代码,他对此并不满意,并告诉我Refleprem API不是用来进行这种“黑客攻击”的。相反,他建议修改生产代码中的可见性。
使用反射真的是不好的做法吗?我真的不敢相信——
编辑:我应该提到,我被要求所有测试都在一个名为test的单独包中(所以使用受保护的可见性,例如,也不是一个可能的解决方案)