如何使用 JUnit 测试具有内部私有方法、字段或嵌套类的类?
仅仅为了能够运行测试而更改方法的访问修饰符似乎很糟糕。
原文由 MattGrommes 发布,翻译遵循 CC BY-SA 4.0 许可协议
如何使用 JUnit 测试具有内部私有方法、字段或嵌套类的类?
仅仅为了能够运行测试而更改方法的访问修饰符似乎很糟糕。
原文由 MattGrommes 发布,翻译遵循 CC BY-SA 4.0 许可协议
测试私有方法的最佳方式是通过另一个公共方法。如果无法做到这一点,则以下条件之一为真:
原文由 Sir Rippov the Maple 发布,翻译遵循 CC BY-SA 2.5 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答3.1k 阅读
如果您有一些遗留 Java 应用程序,并且不允许更改方法的可见性,那么测试私有方法的最佳方法是使用 反射。
Internally we’re using helpers to get/set
private
andprivate static
variables as well as invokeprivate
andprivate static
methods.以下模式将使您可以执行与私有方法和字段相关的几乎所有操作。当然,你不能通过反射改变private static final
变量。对于字段: