1
darasion 2013-04-22 22:55:29 +08:00
我的经验是:
对有规范意识的人很有用。 对喜欢自由创新的人不友好。 对不理解意义的人反而有坏处。 貌似单元测试都是在写实际代码前就已经写好的。 但是就我周围来看,都是写完代码再补单元测试,这样做根本没用,反而有害。 |
2
smilearchery OP @darasion 额。。。写实际代码之前?每月一迭代,项目开始前一周能确定需求不错了〜根本没时间啊
|
3
smilearchery OP @darasion 个人觉得规范靠code review比较靠谱〜
|
4
AntiGameZ 2013-04-23 01:48:21 +08:00
@smilearchery Code Review 靠的是人,人不可信,起码不能在任何时间都可信。
静态的代码规范(比如变量命名规则,花括号用法等)可以通过静态代码分析工具去确保。 代码的执行,主要是互操作的部分,用单元测试来确保。 不管什么工具、方法论,取得收益的前提是充分了解,明白最佳实践和自己实际情况如何结合。有了收益,团队自然会去选择。 不过LZ既然站在反对者一方,也许有推行者的问题,或者团队大环境的问题,既然没提,不好分析 |
6
workaholic 2013-04-23 09:03:06 +08:00
我估计你的公司应该不错,因为大多数公司是不会花人力财力在这个上面的,做单元测试才是正确的,不能应为大家都不做你就不做了
|
7
williamx 2013-04-23 09:24:27 +08:00
单元测试还是很有用的,但是我相信很少有人能在代码之前就写好,尝试过,感觉不可行。
|
8
michaelye1988 2013-04-23 09:35:56 +08:00
我也是做android客户端的,没有用过单元测试,不知如何下手啊。。。github上有没有android平台下的带有测试案例的项目推荐下呢?
|
9
darasion 2013-04-23 10:57:51 +08:00
@williamx
好多测试的概念,貌似都是从传统行业继承而来的。这个没考证过。 反正我以前在机床厂,设计机床画图之后,要请老师傅审图,类似于写代码的code review. 然后再实际造机床之前,还要设计一系列的工装卡具,类似于测试中使用的 fixture. 装完机床,还要经过各种调整,检验,类似于修bug。 |
10
xiaoye5200 2013-04-23 11:23:33 +08:00
日企都要单元测试。。感觉蛮有用的,虽然效率极其低下
|
11
insraq 2013-04-23 11:34:51 +08:00
Unit Test的主要作用不是保证代码能正常运行,这是Integration Test的作用。Unit Test的最主要的作用是在Integration Test Fail之后,能迅速找到是哪一个Unit的错误导致的。
|
12
missdeer 2013-04-23 11:50:40 +08:00
前段时间我尝试给自己在做的项目加一些UT,结果被(总监)一脸不耐烦地制止了。。。
|
13
tedeyang 2013-04-23 12:12:08 +08:00
等你的系统运行3年以后你才会发现单元测试的价值。
|
14
wodemyworld 2013-04-23 13:19:06 +08:00
@smilearchery 项目就是扯啊扯的,都是一堆破事。。。。。。研发人员嘴边经常一堆fucks
|
15
fly2never 2013-04-23 13:37:54 +08:00
手机端GUI不好做单元测试,更多还是靠UI自动化测试吧。接口部分,数据库部分可以单元测试,这个是有成熟模式的。
|
16
AntiGameZ 2013-04-23 13:48:07 +08:00
@xiaoye5200 一个跑了3年的程序,要去改一个比较核心的功能,这时候如果程序曾经有100%覆盖的单元测试,感觉会很爽的。
|
17
vven 2013-04-23 14:08:34 +08:00
@michaelye1988 android官网上有个testing的简单教程
http://developer.android.com/tools/testing/index.html github上面的例子也在找,上次看到facebook的android客户端里面带了测试就赶紧打开看看,但是好像写得很简单只有一个测试文件.... |
18
michaelye1988 2013-04-23 15:41:46 +08:00
@vven 谢谢你啊: )
|
19
xiluo 2013-04-23 19:16:10 +08:00 via Android
貌似android和gwt的pr和bug fix需要有unit test,而且要尽可能全面,否则会被通知加上之后再来
|
20
smilearchery OP @AntiGameZ 我倒也不算反对,只是单测可能需占用开发人员RD 30%的时间,看不到明显收益的情况下确实有排斥感~当然,可以先充分了解试试效果~
|
21
smilearchery OP @darasion 这个解释很新奇~
|
22
smilearchery OP @xiaoye5200 极其低下怎讲?我看到的数据是单测大概会占用开发人员至少30%的时间
|
23
xiaoye5200 2013-04-24 00:47:07 +08:00
@smilearchery 也不叫效率低下,就是整个流程下来很费时,费力,只为找出一点点微小的bug,虽然有意义但是真没什么性价比
|
24
PrideChung 2013-04-24 01:15:35 +08:00
我自己的项目是有选择性地写,主要都是验证数据的正确性,开发的时候反正都是要找点数据来试试的,顺手把单元测试写了也不算麻烦。UI不打算写,巨麻烦而且没什么用,界面上的错误很容易看出来。
现在写单元测试觉得比较麻烦的是对象之间的依赖。例如你要验证一个Model是否能正确地从数据库取数据,必定要依赖数据库连接对象,但一旦依赖了其他对象,这就不是严格意义上的单元测试了,于是有人想到了 mock object 这种东西,用一个假对象来模仿实际的对象,但又怎么知道这个假对象能完美模仿真对象呢,难道我还要为我的测试代码写测试? |
25
AntiGameZ 2013-04-24 13:27:16 +08:00
@PrideChung UI的测试不是单元测试需要关注的部分。
强的依赖,比如继承,也是很难用单元测试去解决的。在实施单元测试之前,程序应该有好的弱耦合架构。 至于Mock,如果从架构中每个单独的Component,Class在外部都OK的情况下,自己没有问题,那从整体上看,也不应该有问题。 总之,单元测试有很多前提需要去满足。InfoQ网站上内容很多,可以仔细看看。 |