OC

Knowledge OS
登录 注册
全部话题 移民 创业 iOS Mac Objective-C Swift Android 招聘 求职

大家在开发中使用TDD么?

walkingway
walkingway 发布于 2014年01月05日
tinyfool 等0人欣赏。

这两天在看关于单元测试方面的东西,xcode 5也直接集成了XCTest,过去Logic Tests和Application Tests的概念也没有了,现在统一默认都是Application Tests,也尝试了一下用TDD来写一个类,感觉有点别扭,难道是我的使用方法不对,大家在实际开发中TDD应用的多么。

附blog一枚:

http://iosunittesting.com/

共30条回复
楼长 ·
tinyfool 回复于 2014年01月05日

我们其实没怎么用过,应该用用

2楼 ·
terryso 回复于 2014年01月05日

严格tdd暂时是没有做到,不过一些重要模块还是有做单元测试的

3楼 ·
newyo 回复于 2014年01月06日

这不都是和写准确足够的注释一样都是大家都知道要这么做,大家都希望别人会这么做,但是没有人会这么做的事情吗。

4楼 ·
coredump 回复于 2014年01月06日

我的感受是严格的TDD是必须和结对编程配合起来的,然而这种开发方式的选择性非常强,和臭豆腐一样的特点,爱的人爱死,恨的人恨死,比如如果强制要我去结对编程,我宁可先辞职再去找工作,或者找不到工作的话单干算了。

另一方面,TDD要和写程序应该写单元测试分开,好的项目,好的程序员都是应该严格认真的写单元测试的,而且对测试代码的重视程度应该等同功能代码。不过单元测试一定要有完整的持续构建和版本控制系统来配合,否则也白白浪费了写单元测试的价值。

我不喜欢的是TDD中间那个D,但是坚持编程必须带着测试,也就是说Develop With Tests (DWT)是必须的,TDD是实现DWT的一种具体实践方式,但不应该是唯一的方式,也不应该是被强迫采用的方式。

5楼 ·
nickdine 回复于 2014年01月06日

十月份团队转移开始整Html5依赖一直写javascript 过程很痛苦 js这门早就应该滚出编程界的语言来说 我觉得TDD是很需要的 至少你的语言扩展和工具相关全部都要tdd 一来要tdd可以让你写下一个函数之前确定需要兼容的浏览器 可以实时的跑出多个浏览器的结果 二来这门语言的混乱程度 在你重构的时候还是很需要参考下之前的测试用例的 改错的几率比较大 而针对传统的javaweb或者android来说 tdd则在团队里不是必须的 很多都是后补的用例 但是毋庸置疑 如果你觉得应该TDD那么请丢下顾虑彻底的TDD 带来的美妙程度是你之前无所想象的 所以我决定以后再回java也坚决的可以TDD就TDD

6楼 ·
tinyfool 回复于 2014年01月06日

其实可能比较复杂的一个问题是iOS这样的UI/UE为主的编程,很难TDD吧?

7楼 ·
liyinkan 回复于 2014年01月06日

像楼上 coredump 说的,TDD 中间那个 D 简直就是反人类的存在。很同意一点是我们其实要做的是 DWT。从我们实施 TDD 的结果来看,切身体会是 1. 开发周期明显拉长。 2. 代码质量没有太大幅度的提高。 3. 很多严格 TDD 出来的代码块依旧需要大量重构。

聊天的时候发现好童鞋都是这样认为的:写 unit test 就是 TDD ...... 然后我就不知道怎么说下去了。

tests 存在的意义不只是开发过程中的爽心爽肺,最大的意义在于,代码交接和重构的时候。(我是不是说多了 ......)

我们现在做到了 UE 交互行为都是有 tests 验证的。 关于 UE 怎么做 test 最重要的一点就是:不要用全局变量 ...... 没有不可测试的语言,只有不可测试的代码。

8楼 ·
akunamotata 回复于 2014年01月06日

个人感觉TDD对个人开发帮助并不大,主要贡献在于团队,在团队中发挥稳定与保障的作用。

9楼 ·
akunamotata 回复于 2014年01月06日

7楼 @liyinkan 我说的也是这个意思,其实TDD对个人也是有帮助的,帮助你理解与思考功能逻辑关系。

10楼 ·
nickdine 回复于 2014年01月06日

7楼 @liyinkan TDD不是说能多么的提高质量 而是说为了后续的重构加一个保障 并不能避免重构 应该是在后续不断的重构中提高质量 如果不重构TDD鸟用没有

本帖有30个回复,因为您没有注册或者登录本站,所以只能看到本帖的10条回复。如果想看到全部回复,请注册或者登录本站。
登录 或者 注册
[顶 楼]
|
|
[底 楼]
|
|
[首 页]

AltStyle によって変換されたページ (->オリジナル) /