查看原文
其他

JUnit你不知道的那些事儿

2016-02-24 老刘 码农翻身

话说有一次Eric Gamma 坐飞机的时候偶遇Kent Beck(对,就是极限编程和TDD的发起人) ,  两位大牛见面寒暄过以后就觉得很无聊了。

旅途漫漫,干点啥好呢。

Kent Beck当时力推测试驱动开发,  但是没有一个工具或者框架能让大家轻松愉快的写测试,并且自动的运行测试。

两人勾兑了一下:不如自己挽起袖子写一个, 于是两人就在飞机上结对编程 ,  等到飞机的时候,一个划时代的单元测试工具就新鲜出炉了,这就是JUnit:


JUnit当然是用Java写的, 其他语言一看, 这东西好, 咱也搞一套, 于是就有了一大批工具,统称xUnit

NUnit (针对.Net 平台) ,  CUnit (针对C语言) , CppUnit(针对C++语言), PyUnit (针对Python), PHPUnit, OCUnit, DUnit, JSUnit ......


超级大牛出马,亲自敲出来的代码自然非同凡响, 它的设计简直就是使用设计模式的典范:

更牛的是, 他们是以一种叫做“模式生成架构”的方法来创建JUnit的, 换句话说,就是从零应用模式, 然后一个接一个, 直到你获取最终的系统架构:


我第一次看到这种方式, 真是惊为天人,  我知道代码要向模式进行重构, 还从来没听过由模式来构建系统!

但一想到Eric Gamma的背景, 就没有什么可惊讶的了, 因为Eric Gamma 实际上是划时代的书籍《设计模式:可复用面向对象软件基础》四位合著者(称为GoF,Gang of Four)之一


这本书的经典地位就不用说了, 像JUnit繁衍出来的xUnit一样, 这本书也有很多的“繁衍品”, 例如

《Head First Degisn Pattern》 , 《设计模式解析》,《大话设计模式》。。。。

JUnit超级流行,几乎是事实上的Java 单元测试和TDD的工具标准, 有人选择了GitHub上最热的三门语言Java,Ruby和Javascript , 对每个语言分析了1000个项目,找出了最常用的组件,可以看到JUnit 以30.7%并列第一



所以JUnit已经变成了程序员必备的技能, 不会JUnit就太Out了。


-----------------------------------------------------------------------------------

码农翻身公共号(coderising) : 由工作15年的IBM架构师创建,分享编程和职场的经验教训。

回复下面的关键字,查看更多文章

牛人 键盘侠 留学 读书 调试 烂代码 小白 培训

数据结构 代码腐化 无聊 迷茫 刚工作 死锁 简历  真实项目

HTTP Session XML AJAX TOMCAT 反射 JUnit



加入码农翻身QQ群:135769418 每周日晚9点至10点定期授课,不容错过。


长按二维码, 关注"coderising"

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存