使用TDD变得更容易需要多长时间?

3

我认为TDD是最有前途的开发实践之一,但很容易从开发者的工具集中被忽略。

对我来说现在非常难。但许多开发人员似乎在日常工作中认真使用它。

每当我试图按照鼓励、好处和良好建议的想法进行TDD时,

但在花费几个小时运行一些简单的测试用例后,我会回到我的本地编程习惯。

一些人说它需要时间去适应,因为这是一个实践过程!

我只想知道如果你是一个不能没有TDD的开发人员,那么要成为TDD专家需要多长时间。

2个回答

5

2007年,我开始使用TDD。当时,我有一个适合编写小型非关键实用程序的任务(需要30-40小时的努力)。对于我来说,花费了几个小时来想出首个测试,又花了几天时间才能转变思维方式,先考虑测试。大约一周后,我完成了该程序,并通过代码行数进行了测量(这不是一个好的测量方法,我知道),我的生产率与之前的项目相同(每小时完成约20行代码)。

在第一个项目之后,我意识到我的测试还不够好,而且我仍在寻找自己的风格。我特别关注如何命名我的测试。经过大约一年和七个小项目的努力,我才对自己所编写的测试质量感到满意。那时候,我可以说我已经内化了TDD,然后我编写了一份TDD教程来教授给其他人。当然,即使在那之后,我也一直不断改进和学习新的方法


你花了一年以上的时间才对自己的TDD技能非常有信心吗? - popopome
我认为要让TDD成为我的第二天性,需要大约6个月的时间进行超过200小时的实践。我当时正在开发一些算法挑战性较高的小应用程序(主要是业余项目),这些应用程序没有难以测试的依赖项,例如数据库、Web UI或遗留代码库。但是,我在几周内就开始体验到TDD的好处了。 - Esko Luontola
@Ekso 谢谢。我真的想知道时间是以小时还是天为单位的数字。这对我非常有帮助。 - popopome

2
这很难回答,因为测试驱动开发的易用性取决于您所处的环境。如果您有旧的C代码,并且存在许多硬依赖关系(其中依赖关系是具体类而不是接口),那么单元测试就会变得更加困难。
如果您使用像Spring这样的依赖注入框架,则可以更轻松地模拟对象并注入到正在测试的类中。同样适用于像Ruby或Groovy / Grails这样的语言,在这些语言中,您可以基本上混合或更改底层类的功能。
我建议先尝试一些像Grails或Rails这样的框架,这些框架考虑了TDD,并提供了使TDD更容易入门的工具。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接