我已经通过了this question on SO regarding unit testing private methods and fields和 this answer说可以通过反射机制来完成。但是there is a commnent说在混淆的情况下它会惨败。为什么会这样?
最佳答案
混淆的工作原理是用难以阅读的名称替换符号名称(方法、字段 ..)。所以在反编译之后你得到一个 java 文件,你得到一个非常无用的 java 代码。
方法名称会发生变化,因此通过反射查找将不起作用。 (除非测试代码使用带有混淆方法名称的反射 - 这不是一件容易的事)
关于java - 如果使用混淆,为什么使用反射对私有(private)方法进行单元测试会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12296980/