首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >尝试测试驱动开发

尝试测试驱动开发
EN

Stack Overflow用户
提问于 2009-09-01 03:16:26
回答 3查看 842关注 0票数 9

在阅读了这篇帖子之后,我觉得自己和问这个问题的人有着同样的立场。我喜欢科技,想出解决现实世界问题的新思路,只是让我的神经元变得很饥渴,但方程的另一部分--实际完成(快速)--通常是要完成的痛苦,特别是当我为自己做这件事时。

有时我对代码感到很厌烦,有时我会花更多的时间在文本编辑器中移动光标,盯着我的代码,试图想出一个比我已经拥有的解决方案更好的解决方案。我听说这是一种叫做完美主义的病。

我在同一篇文章中读到过(在这里也读过几次),TDD实际上很好地阻止了像女孩一样编码,但是我从来没有给过TDD的机会--要么是因为我懒得学习/设置它,要么是因为我认为我不需要它,因为我可以做我头脑中需要的所有测试。

  • 你还认为TDD实际上有助于GTD吗?
  • 关于TDD我需要知道些什么?
  • TDD的替代方案呢?
  • 组织/开发TDD网络应用程序的最佳方法是什么?
  • 我应该使用哪些库(如果有的话)来使我的生活更轻松?

PS:我主要(但不完全)在这里使用PHP。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-09-01 03:39:03

就我个人而言,我认为TDD充其量是过火的,在最坏的情况下,它阻碍了编程的创造性过程。为每个尚未编写的方法/类费力地编写单元测试的时间最好花在解决原来的问题上。尽管如此,我是单元测试的忠实粉丝,并且全心全意地相信它们。如果我有一段特别复杂或麻烦的代码,我很乐意为一个方法编写20个单元测试,但通常是在我解决了问题之后。TDD和其他编程范式一样,并不是灵丹妙药。如果适合的话,如果不继续找,你就用它。

不过,听我的意见就行了。一个更有趣的例子来自肯特贝克你的单元测试有多深?

票数 5
EN

Stack Overflow用户

发布于 2009-09-01 03:43:41

,您是否也相信TDD实际上对GTD有帮助呢?,我最关心的就是不能测试代码。太复杂了。我们的核心库不是围绕一个易于测试的界面构建的。所以我们尽我们所能来做测试。最后,我们最终重构了我们的核心库,以使生活变得更容易。除此之外,这是一种思维方式的改变,我肯定会考虑在您的第一个TDD项目上分配更多的时间,以解决您在此过程中可能遇到的一些问题。

关于TDD我需要了解什么?TDD不能代替一种方法。这是一个有益的补充,或至少应该是。如果做得好,TDD大大改进了软件设计。它还充当您的内部文档。如果您希望有人查看您的API并了解它是如何工作的,他们可以简单地查看您命名良好的一个已形成的测试。

,TDD的替代方案呢?,就像我说的,我不认为这是一种方法的替代品。还有一种选择,那就是不使用它:)

什么是组织/开发TDD网络应用的最佳方法?我们在scrum/敏捷方面已经相当成功了,如果这就是你想要的话。

我应该使用哪些库(如果有的话)来简化我的生活?我的PHP知识5年前就已经过期了,我会让其他人回答这个问题。

不管是哪种,只要我的2分钱。如果你想阅读这里是一个很好的概述:http://www.agiledata.org/essays/tdd.html

票数 2
EN

Stack Overflow用户

发布于 2009-09-01 07:59:12

我最近开始使用"fat模型瘦控制器“http://www.amitshah.in/php/controller-vs-model.html:尽可能多地将代码放入模型(以及视图/控制器之外)。

我使用PHPUnit (以及对它的支持)来测试我的web应用程序中的几个复杂模型。编写单元测试,彻底检查执行简单SQL查询的2行函数是浪费时间,IMHO。在过去的几年里,我在编写测试时变得越来越懒惰,而对于大多数web应用程序来说,这并不值得,因为代码太简单了。

但在最近的一个项目中(一个电子商务网站,用复合产品跟踪多个仓库的库存水平),我开始进行测试优先开发,因为我知道会有很多微妙的复杂性,而我不可能一次就把它记在脑子里。唯一的办法,使所有的工作,因为我的想法发展,是写一些测试。对于某些部分,编写类似乎比编写测试更自然,其他部分首先进行测试,而其他部分则不需要测试,因为它们很琐碎。TDD是一种工具,而不是宗教。当它起作用的时候就用它,如果它不起作用就停下来。

在我看来,TDD的好处在于减少了复杂性并提高了速度(解决问题的速度)。如果我编写了一些测试来证明我的代码工作正常,那么一旦所有的测试都通过了,我就可以继续讨论下一个问题。这让我重新回到了编码的乐趣。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1360357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档