在开始编写方法/类之前要进行多少单元测试?

我开始(至少尝试)使用TDD原理进行编码,我有一个问题:在实际开始编码之前我需要编写多少测试?

以假设的Math类和方法Divide(int a,int b)为例.

a)在开始编码Math之前,我是否必须完全测试Math类的所有方法(Sum,Average,…)?

b)在开始编码方法之前,我是否必须完全测试Divide方法,例如断言为零除以?

c)或者我可以创建一个简单的测试断言并验证它是否失败,编写代码并检查它是否正常,为每个方法的断言重新处理过程?

我认为选项c)是正确的,但我找不到答案(我做了一些搜索,但找不到确定的答案).

您的选项c完全由书TDD表示.

您编写一个失败的测试来执行您正在处理的类的功能,然后只编写足够的代码以使该测试通过.然后再次执行此操作,进行下一次测试.

通过这种方式,您应该看到您编写的每个新代码都非常关注特定的用例/测试,并且还发现您的测试在所涵盖的内容中保持不同.

您希望最终以红绿重构方式工作,以便定期返回代码和测试,以便将事物重构为更好的设计.

当然,在现实世界中,您最终可能会编写许多红色测试,或编写比特定测试所需的更多代码,甚至编写没有测试的代码,但这样做会远离TDD,只应谨慎行事.

关于这个的维基百科文章实际上非常好. http://en.wikipedia.org/wiki/Test-driven_development

相关文章

什么是设计模式一套被反复使用、多数人知晓的、经过分类编目...
单一职责原则定义(Single Responsibility Principle,SRP)...
动态代理和CGLib代理分不清吗,看看这篇文章,写的非常好,强...
适配器模式将一个类的接口转换成客户期望的另一个接口,使得...
策略模式定义了一系列算法族,并封装在类中,它们之间可以互...
设计模式讲的是如何编写可扩展、可维护、可读的高质量代码,...