TDD 生存手册

作者/分享人:武可
写了17年程序,还想一直写下去的程序员。现就职于一家航空业软件公司。平时工作中主要写些Java后端代码。 很早就开始关注TDD,惭愧直到前两年才打通经脉。实在感觉它太好用了,目前仍处在热情高涨期。 平时业余时间喜欢在TDD交流群里讨论切磋,写点心得,偶尔也参加线下活动,以码会友。

作为一个开发者,你对 TDD 的态度是什么,有没有遇到过这样的困惑?

  • 看起来很美,用起来完全不是那么回事。
  • 一会测试一会代码,手忙脚乱的不会写了。
  • 也就写写玩具例子,真正的生产代码不实用。
  • 真的按照 TDD 来做,不知得花多大的成本。
  • 也许全新的项目可以这样做,但是我平常根本没机会做新东西,都是在老代码上修改维护的。TDD 根本不适合我们的情况。

如果你对 TDD 还怀有一丝期望,又有着种种困惑。这个话题就是为你准备的。

作为一个程序员,我也曾经有着同样的各种困扰。经过数年摸索后,忽然发现自己的在日常工作已经自然而然的操起 TDD。今天想和你分享如何才能实用有效的用起 TDD。

已有105人预订
预订达标
文章出炉
交流日期
     
05月31日
06月13日
06月20日 20:30
查看文章评论/提问
李志博
重构一定要写单元测试,但是写单元测试不一定是为了重构,例如验证代码逻辑问题,重新清理数据,构建环境初始化状态,等等。单元测试是一种工具
武可: 可否解释一下“重新清理数据,构建环境初始化状态”的具体含义。
Adele
如何从团队无单元测试到有质量,且节约成本的单元测试?(团队两周迭代,每次会发4-5次生产,10次测试,不希望为了做单元测试而做单元测试);另外是一定要开发人员本人来写单元测试吗?如果还可以由测试或其他人来做,各有什么优劣?
金震
有个问题,不管是什么test,都不可能是100%全覆盖的,那么回到TDD上,基于这样的前提,我们怎么保证testcase能给我的业务代码足够的保护? 只保证能想到的业务分支没问题就可以了么?那如果其他人调用我的方法,正好利用的是一个我没测到的分支,而我重构以后,之前的业务分支保证了,但别人使用的这段非业务分支没被保证到怎么办? 也就是说,我们要把TDD做到什么程序才能够为代码提供足够的保护呢?C2下的100%么?付出有点多……望解答!
李志博: 我个人认为,我保证不了整个项目但是我开发过,或者动过的地方,都要写单元测试,保证自己写的代码本身是没问题的
Yaguang
文章很赞。TDD有限实践,最愿意我使用和坚持的原因是,让我更安全。写出代码不会因为疏忽而犯低级错误;写过代码自己验证过,放心;大脑不够用的时候,测试可以帮我发现regression bug;记忆不好长时间后帮我提醒。
你可能还喜欢
Service Mesh 在华为公有云的实践
田晓亮
利用 OpenCV 和 Caffe,根据大合影构造“平均脸”
李烨
从零开始,搭建 AI 音箱 Alexa 语音服务
Mike
Web 安全恩仇录:再谈逻辑漏洞
肖志华
TensorFlow 分布式原理与应用实践
刘光聪
编程和数学基础不佳如何入门人工智能?
赵宁|Neal
微信扫描登录