tdd – 我应该只测试BDD中的公共接口吗? (一般来说,特别是在Rub
我正在阅读(仍然测试版)
rspec book by the prag progs,因为我对对象的行为测试感兴趣.从我迄今为止所收集到的内容(警告:仅读取30分钟后),基本思想是我希望确保我的对象在外部(即在其输出中)与其他对象相关的行为.
那么我应该只是测试我的对象以确保与其他对象的正确输出/交互吗? 这可能是完全错误的,但考虑到所有关注我的对象在系统中的行为,似乎这是一种意识形态.如果是这样,我们如何专注于对象的实现?我如何测试我的私有方法正在做我想要它做的所有不同类型的输入? 我想这个问题可能适用于所有类型的测试?我还是TDD和BDD的新手.
如果您想更好地理解BDD,请尝试在不使用“test”一词的情况下考虑它.
您将编写一个如何使用您的类的示例(除非通过公共方法,否则不能使用它),而不是编写测试.您将展示为什么您的课程对其他课程有价值.您正在定义类的职责范围,同时显示(通过模拟)在其他地方委派的职责. 同时,您可以质疑职责是否合适,并调整课程中的方法,使其尽可能直观地使用.您正在寻找易于理解和使用的代码,而不是易于编写的代码. 如果您可以根据示例进行思考并通过行为提供价值,那么您将创建易于使用的代码,并提供其他人可以遵循的示例和说明.您将使您的代码安全且易于更改.如果你考虑测试,你会把它固定下来,以便没有人可以打破它.你会很难改变. 如果它足够复杂以至于您确实需要单独测试内部方法,请将它们分解为另一个类,然后说明为什么该类有价值以及它为使用它的类做了什么. 希望这可以帮助! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |