单元测试前言

单元测试.png

1、前言

最近,在 上看到过 个调查,调查的内容是“程序员在项 开发中编写单元测试的情况”。当然, 于调查的结果,我想聪明的你已经可以猜到 。 达 58.3% 的 , 般情况下 写单元测试,只 有偶尔的情况才会写写。16.6% 的程序员从来都 写单元测试。只有很少的 部分程序员才会在 的代码中进 单元测试,并保证 法测试通过。看到这些,你想到 么?

2:现状

虽然,这个调查可能会有些 性,但这也基本反应 国内程序员的开发现状,很少有程序员能够 较认真的去编写单元测试。 且,甚 有的程序员根本就 知道为 么要写单元测试(这 点让 我很郁闷)。他们经常会说,公司 是有测试 员嘛,测试应该是他们要做的事,我们的 作只 是开发(这位仁兄肯定没有学过软件 程)。当然,这些并 是偶然的,正如佛经 边说的“因果循 环”,有果必有因。那么,到底是 么原因,导致程序员对单元测试这么 感冒呢?

3:发现

通过与 个朋友的讨论,以及 上的调查,主要有这 种原因,导致程序员对单元测试很排斥,或
许说很 以为意。
知道怎么编写单元测试
项 没有要求,所以 编写
单元测试价值 ,完全是浪费时间 业务逻辑 较简单, 值得编写单元测试 管怎样,集成测试将会抓住所有的 bug, 着进 单元测试 在项 的前期还是尽 去编写单元测试,但是越到项 的后期就越失控
为 完成编码任务,没有 够的时间编写单元测试。编写单元测试会导致 能按时完成编码任务,
导致项 延期
很显然,这 种原因归根结底, 外乎就是 解单元测试, 认为很聪明, 懒 想去测试, 对项 的时间、进度把控 好。下 ,我将 进 分析,剖析出程序员的开发 ,以此来给朋 友们提个醒,最终聪明反被聪明误。

4:剖析

A: 知道怎么编写单元测试

这个问题在于,还没有接触过单元测试,同时,也没有体会过企业级的代码开发。 知道同时也 解单元测试能带给你 么。设想 下,当你开发完 个功能模块的时候,你如何确定你的模块没 有 bug 呢?如果涉及到具体的业务,你会执 debug 模式,然后 点 点的深 到代码中去查看
吗?如果你 直都是这样,那么你早就已经 OUT 。赶快去 解 下单元测试的 具吧,你会收获 很 的。

B:项 没有要求,所以 编写

这个问题反映出 种现象,同时也是 种习惯。项 有没有要求,只能说明项 的管 上 严格, 并 是程序员 编写单元测试的 由。他们在以往的开发中,并没有养成写单元测试的好习惯。可 想 知,他们的代码质 ,我就 敢恭维 。给个建议,尝试着写漂亮的代码,之所以因为漂亮, 是指得健康、简洁、健壮。当然,完成漂亮的代码就离 开单元测试 。

C:单元测试价值 ,完全是浪费时间

这种说法其实是错误的。为 么这么说呢?在 常的开发中,代码的完 其实并 等于开发的完 。 如果没有单元测试,那么如何保证代码能够正常运 呢?测试 员做的只是业务上的集成测试,也 就是 盒测试,对单个的 法是没有办法测试的, 且,测试出的 bug 的范围也会很 ,根本 能 确定 bug 的范围,还得去花时间来确定 bug 出在 么地 。难道这就 浪费时间 吗?甚 ,这样 的 式,时间浪费的会 多。

D:业务逻辑 较简单, 值得编写单元测试

所谓的业务逻辑 较简单,其实是相对的。当你对某 块业务逻辑很熟悉的时候,你 然会认为它
很简单。然 ,单元测试的必要性并 是仅仅在于测试代码的功能是否正确,还在于,当其他同事
在 解你的业务的时候,能够很快的通过单元测试来熟悉代码的功能,甚 去读代码,就能够
知道它做 哪些事情。因此,写单元测试 仅是解放 , 别 。

E:项 前期还在尽 写测试,到 后期就失控

这种问题的原因在于,对项 进度、项 中的技术点研究时间、 员的沟通、业务需求的熟悉程度
等没有把控好。这个问题的出现并 是个 的问题, 是反映 项 管 中存在的问题。当然,个
的原因也存在,就是如何在有限的时间 ,提 效率。这 点需要 家好好思考 下 。我的建
议,多做计划,根据实际情况变 计划。多和项 组 、组成员进 沟通。及时反应项 中存在的
问题。

F:为 完成编码任务,没有 够的时间编写单元测试

这个问题在于,程序员领取的任务较为复杂,或者 的开发效率有待提 。其实,开发任务是包
括编码和单元测试的。在领任务的时候,应该跟据 身的能 ,跟组 或经 沟通好,以 出
定的测试时间。当然,提 的编码效率也是很有必要的。 于如何提 开发效率, 上有很多
这样的 章,这 就 再赘述 。

重要性

测试常常是程序员 分厌倦的 个活动。测试能给我们带来 么? 解这些是 常重要的,测试 可能保证 个程序是完全正确的,但是测试却可以增强我们对程序完整的信 ,测试可以让我们相 信程序做 我么期望它做的事情。测试能够使我们尽早的发现程序的 bug 和 。
个 bug 被隐藏的时间越 ,修复这个 bug 的代价就越 。在《快速软件开发》 书中已引 的研究数据指出:最后才修改 个 bug 的代价是在 bug 产 时修改它的代价的10倍。
当然,我们主要讨论的是单元测试。单元测试是 个 法层 上的测试,也是最细粒度的测试。 于测试 个类的每 个 法都已经满 法的功能要求。在开发中,对于 开发的模块,只有 在通过单元测试之后,才能提交到 SVN 库 或者 Git 库。

正是由于测试在开发中的重要地位,才会在IT界刮起 TDD 的旋 。TDD,也就是测试驱动开发模 式。它旨在强调在开发功能代码之前,先编写测试代码。也就是说在明确要开发某个功能后, 先 思考如何对这个功能进 测试,并完成测试代码的编写,然后编写相关的代码满 这些测试 。 然后循环进 添加其他功能,直到完成全部功能的开发。

结束语

俗话说, 屋 扫,何以扫天下。开发中,我们 的代码都 能保证功能的正确性,那么还有 么效率可 呢?做再多的任务,写再多的代码也只 过是在搭鸡窝,做着机 样的重复的 作。 IT界有 个原则,DRY原则 —— Don't Repeat Yourself !只有通过对 的 作 断的检查, 断 的测试,才能 断的突破, 断的脱颖 出,当然,你才能 断的提 。
Test Day Day Up! Experience Day Day Up! And Money Day Day Up Too!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,029评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,238评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,576评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,214评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,324评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,392评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,416评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,196评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,631评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,919评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,090评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,767评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,410评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,090评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,328评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,952评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,979评论 2 351

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,939评论 25 707
  • 文章来自:http://blog.csdn.net/mj813/article/details/52451355 ...
    好大一只鹏阅读 9,189评论 2 126
  • 今天去朋友家里玩了,我们吃完饭之后睡了一会儿。睡醒之后在床装睡,这时候朋友的父亲来窗台拿东西。我们...
    茶茶茶_荼靡阅读 46评论 0 1
  • 今天是练瑜伽的第4天,身体的疼痛缓解了好多。 准备练瑜伽咨询了好朋友何丹,她给我推荐了十二府的吴迪...
    暖光浅笑a阅读 121评论 0 0
  • “那一天我二十一岁,在我一生的黄金时代。我有好多奢望。我想爱,想吃,还想再一瞬间变成天上半明半暗的云。”柴米油盐的...
    EElaine阅读 151评论 0 0