iOS 开发高手课
戴铭
前滴滴出行技术专家
42934 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 47 讲
用户故事 (1讲)
iOS 开发高手课
15
15
1.0x
00:00/00:00
登录|注册

29 | 如何在 iOS 中进行面向测试驱动开发和面向行为驱动开发?

适合集成测试和系统测试
测试范围更大
对行为的描述
适合单元测试
针对最小单元进行测试
模拟对象和存根语法
期望语法
DSL模式
探讨团队没有使用TDD和BDD的原因
在核心业务上采用BDD
优先对基础能力的功能使用TDD和BDD
没有时间写测试用例
业务迭代太快
测试用例作为文档
代码更易维护
代码重构优化
模块化设计
BDD
TDD
画漫画的类比
适合快速迭代的节奏
快速发现问题
先编写测试用例
Kiwi框架
可当作文档使用
使用DSL描述测试用例
关注行为方式的设计
课后作业
建议
推行困难
优点
TDD vs BDD
TDD(Test-driven development)
BDD(Behavior-driven development)
在iOS开发中,如何进行BDD和TDD?

该思维导图由 AI 生成,仅供参考

你好,我是戴铭。今天,我要和你分享的话题是,如何在 iOS 中进行面向测试驱动开发和面向行为驱动开发。
每当你编写完代码后,都会编译看看运行结果是否符合预期。如果这段代码的影响范围小,你很容易就能看出结果是否符合预期,而如果验证的结果是不符合预期,那么你就会检查刚才编写的代码是否有问题。
但是,如果这段代码的影响范围比较大,这时需要检查的地方就会非常多,相应地,人工检查的时间成本也会非常大。特别是团队成员多、工程代码量大时,判断这段代码的影响面都需要耗费很多时间。那么,每次编写完代码,先判断它的影响面,然后再手动编译进行检查的开发方式,效率就非常低了,会浪费大量时间。
虽说一般公司都会有专门的测试团队对产品进行大量测试,但是如果不能在开发阶段及时发现问题,当各团队代码集成到一起,把所有问题都堆积到测试阶段去发现、解决,就会浪费大量的沟通时间,不光是开发同学和测试同学之间的沟通时间,还有开发团队之间的沟通时间也会呈指数级增加。
那么,有没有什么好的开发方式,能够提高在编写代码后及时检验结果的效率呢?
所谓好的开发方式,就是开发、测试同步进行,尽早发现问题。从测试范围和开发模式的角度,我们还可以把这种开发模式细分出更多类型。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

iOS开发中的TDD和BDD开发方式能够帮助开发者更快地发现问题,提高代码质量和开发效率。TDD注重快速迭代,先编写测试用例再编写功能实现代码;而BDD更关注行为方式的设计,通过描述行为来验证功能的可用性。在iOS开发中,Kiwi框架是一个优秀的BDD框架。这两种开发方式有助于模块化设计、代码维护和优化,以及提高代码的可读性。在团队中推行TDD和BDD的最大困难是业务迭代太快时,没有时间去写测试用例。建议优先对基础能力的功能开发使用TDD和BDD,保证基础能力的稳定,再考虑在核心业务上采用BDD。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《iOS 开发高手课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(12)

  • 最新
  • 精选
  • xilie
    看到这个 “正在手淘推动BDD😄” 就放心了,原来大家都不做单元测试的哈
    2019-05-29
    17
  • Trust me ҉҉҉҉҉҉҉❀
    正在手淘推动BDD😄
    2019-05-16
    3
    15
  • 故胤道长
    戴老师讲得非常全面。我个人认为TDD最大的问题是只关注单个功能的正确性,却无法保证设计上的性能。从整体设计角度来看TDD并没有促进作用。
    2020-02-28
    7
  • 小万叔叔
    没有采用TDD或BDD的原因: 一来很多业务迭代的比较快,没有时间是一个原因。 二来,能够TDD是建立在编写TDD的场景足够,也就是能模拟细粒度模块的外围环境,对于小项目而言想要的往往就是快速出产品,一开始就关注细粒度模块化的很少,对于大项目,受历史原因业务之间的强耦合导致很难去构建Mock场景。 挺赞同从基础模块和对外的 SDK 结合业务的发展去编写TDD可能更合适。
    2019-05-16
    7
  • 赶紧学起来
    大都不用TDD/BDD,觉得原因有三 1、 流程不够规范 2、迭代快时间紧 3、开发完给测试
    2019-05-28
    4
  • 不知名的iOS网友
    课程一些笔记:https://github.com/CrusherWu/iOSRoadMap
    2019-05-16
    4
  • 时间都去哪了
    TDD,OC有什么好用的推荐框架吗?
    2019-05-16
    1
    3
  • 文培定
    一直在小公司待,发现我这TDD都是相反的,一般都是先开发,后写测试用例。而对于BDD,一般涉及到纯逻辑的东西,例如某种算法的实现,才会去写测试code,因为有时候也不确定自己的算法是否写对了。
    2021-05-20
    1
  • Geek
    感觉内容高大上,和我们小公司不沾边,不过作为了解内容,还是不错的,感谢大神
    2019-05-27
    1
  • 程序员讲道理
    无论是 TDD、TDD,测试逻辑还是有办法可以做,但是可能需要做好分层,mock数据啥的。但是测试视图目前比较困难,比较好的实践就是 FB 的 iOSSnapshotTest
    2022-04-10
收起评论
显示
设置
留言
12
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部