TDD的一个方面,我从来没有完全理解.
假设有人要求你实现一个简单的Stack对象.如果您正确地完成了设计,您将会看到一个非常小巧干净的API.假设:push(),pop()和isEmpty().任何事情都超过了这个要求,并且允许用户太多的空间弄乱你的代码.
所以现在让我们假设你想对你的代码进行单元测试.如果所有的公共方法只是上面显示的三个方法,你该怎么做?这些方法将仅在您的测试中进行.
因此,您可以添加私有方法,因为您的单元测试用例不可见,这些方法根本无法帮助您.或者您将这些方法公开,并且您的努力工作的简约API.现在用户将会混乱你的Stack,而且bug一定会来的.
您如何处理开放公开测试方法与简洁API的困境?
编辑:只是指向正确的方向,很高兴得到技术指标(如“使用这个黑客暴露私人方法”等),但我更多地关注更多的通用答案关于什么这两个概念更重要,你如何处理这个问题.