我正在为我正在设计的图形语言开发一个解释器,并且我想将 TDD 应用到我的开发过程中(Java 中的所有代码)。我的解释器只有一个公共功能:execute()
执行给定的图表。要执行图表,该类应使用许多内部(私有)方法。我想使用 TDD 创建这些方法,但由于它们是私有的,我想不出一种访问它们的方法。我究竟做错了什么?
谢谢
您始终可以将私有方法包设为私有,并从同一包中的测试中对其进行测试。这当然意味着您需要一些纪律并且不要尝试调用相同的包私有方法。
将您的测试代码放在同一个包中,并将私有方法更改为具有默认(包)可见性。如果您担心过多地打开类,以致同一个包中的行为不端代码可能会做坏事,那么将类+测试代码移动到自己的包中。
我们做这种事情的方式是拥有测试文件(输入和预期输出)。向公共函数抛出数据,然后根据预期检查结果。不知道这对您的情况有多容易,但它使您的测试和生产代码实现不可知。