没有TDD可以进行单元测试吗?

时间:2012-02-19 11:38:17

标签: unit-testing tdd

我正处于一个我们不做TDD的项目,因为我们的老板和客户都是非常“老式”的人。因为我不能通过TDD进行设计,但我觉得很容易改变,我想为自己的安全编写单元测试。但是,这些单元测试将如何?我是否必须为每个方法规范编写一个测试,以便他们按照预期的那样做?我是否必须测试TDD等每项新功能但没有设计?我心里一团糟。

提前致谢。

3 个答案:

答案 0 :(得分:6)

你可能不会通过单元测试来伤害任何东西 - 无论他们做得多好 - 除了一种可能的副作用,这是错误的信心。

我们倾向于不做核心TDD,但是单元测试覆盖范围从不存在到中等,取决于项目,并且随着想法的落实而变得越来越有价值。

对于一般指示,我现在说以下是您的主要优先事项:

  • 测试您认为重要的内容
  • 测试你知道的脆弱
  • 编写测试以暴露任何新错误,然后通过进行测试的修改来解决错误
  • 尽可能将TDD应用于任何新功能
  • 承认您无法TDD现有项目。就其本质而言,TDD仅适用于新的领域,无论是新产品还是传统产品的新功能。不要让这个事实让你灰心丧气。

答案 1 :(得分:1)

即可。 TDD是另一种软件开发技术,恰好可以大量使用单元测试。单元测试作为一个过程本身就没有问题,没有TDD。更不用说,有时甚至不可能做TDD而你做了测试(想想遗留系统/现有未经测试的代码测试)。

但至于你应该测试什么。根据您希望(可以)进行的测试深度,您可以从最终用户导向的功能开始,通过系统组件测试(即类合同)直到确保您的代码执行您声称的功能 - 这几乎是最终,最细粒度的单元测试,你很可能会有很多。

一般来说,测试什么并不是一个简单的问题,我碰巧已经回答了这个问题的几个变体,给你一些提示:

此外,阅读top voted unit testing个问题中的一些问题可能会让您了解为什么您将从测试中受益,无论是否使用TDD。

答案 2 :(得分:1)

当你说“我们不做TDD”时,你是说其他人不练习TDD,或者你的老板是否禁止你练习TDD?如果它是第一个,那么你可以根据需要练习TDD,只要你不试图强迫其他人这样做。如果它是另一个,那么告诉你的老板他们付钱给你编写代码的最佳方式,并且TDD是你如何做的一部分。

你可以在不练习TDD的情况下编写测试。人们一直这样做。用古老的谚语“测试,直到恐惧变成无聊”。为您担心的任何内容编写测试可能无法正常工作。