前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2022-10-29-测试驱动

2022-10-29-测试驱动

作者头像
三流编程
发布2022-11-12 14:27:45
1420
发布2022-11-12 14:27:45
举报

TDD 的三项法则

  • 先写单元测试代码,然后再编写被测试代码。
  • 一个单元测试失败,就停止编写测试代码,即保证每一次都是成功的,从这角度说,可以保证后续集成测试出现的 bug 变少。
  • 产品代码恰好能够让当前失败的单元测试成功通过即可,不要多写。即写了必要的产品代码,就别写了,再先写测试代码,再写产品代码,不要多余。

TDD 的优势

  • 确定性:就是无论改了什么,只要保证单元测试都覆盖到,只要保证单元测试都通过了,就可以确定代码没什么问题了,可以交付。
  • 缺陷注入率:因为每写一点代码都要先测试,所以能够减少引入的缺陷。
  • 勇气:看到糟糕的代码,为什么不敢修改?因为怕引起其他问题。被戳中了,如果有一套值得信赖的测试,那就可以打消这顾虑,可以放手去整理代码。不再惧怕整理代码时,就会去整理代码,然后代码便易于理解、修改和扩展。
  • 文档:单元测试即文档,如果是遵循 TDD 的程序,只要看到单元测试,就能明白函数如何调用,什么参数,对象如何创建。
  • 设计:比如一个函数调用其他函数,因为要单元测试,必须将两个函数解耦。测试先行,会迫使你去考虑什么是好设计。事后写测试是防守,先写测试是进攻,强迫自己必须写出能够单元测试的解耦的代码。
  • 专业人士的选择:TDD 是专业人士的选择。是提升代码确定性、给程序员鼓励、降低缺陷率、优化文档和设计的原则。

好像有点被说服了。

TDD 的局限

规则不可教条,根据实际情况判断,若真不适合,也不必遵循,反正现在写 Android 代码我感觉不太适合,简单的单元测试可以,稍微复杂点的就要运行到手机上,需要虚构许多东西,挺繁琐的,不像直接在电脑上编译运行。这实践留待以后做其他的项目吧。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-10-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • TDD 的三项法则
  • TDD 的优势
  • TDD 的局限
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档