书评:敏捷模式──指向成功的路标
Ryan Cooper对Amr Elssamadisy的新书发表了评价,并认为书中提供了一种为实施敏捷量身定做的框架。本书并没有给出一种人人可用的敏捷方法,而是为读者提供一些模式和工具,用以找出哪些敏捷实践可以最有效地达到该组织机构的特定目标。
作者 Mike Bria译者 张龙 发布于 2008年7月17日 上午1时39分
Google最近开源了其基于xUnit的C++单元测试框架。项目开发者Zhanyong Wan说在Google内部已经有数以千计的C++开发者在使用该框架,并且已经持续好几年了。
根据Google所述,此次发布的主要亮点体现在:
C++社区一直都觉得他们的单元测试工具不如Java和C#等其他现代语言的好,很多人还会问:“为什么还要用另一个工具?它有什么特别的?”。在其wiki的Faqs中,Googlers尝试去解答这些问题。他们说他们并没有宣称其工具要比现存的好,而仅仅是将对其工作有帮助的一些功能整合起来。从该站点上我们看到:
我们希望这个列表能帮助你判定Google Test是否对你也有帮助:
- Google Test被设计为便携式的。在很多STL类型(如std::string及std::vector)无法编译的地方它都能正常执行。它无需异常或者RTTI。所以,它能运行在Linux、Mac OS X、Windows及一些嵌入式操作系统上。
- 事实证明Nonfatal断言(EXPECT_*)可以节省大量时间,因为他们使得在一次单独的编辑——编译——测试周期中能报告多个失败。
- 编写可以生成信息的断言非常简单:就用流(stream)语法来附加任何额外的信息就行,如ASSERT_EQ(5, Foo(i)) << " where i = " << i;。它不需要新的宏或者特殊的函数。
- Google Test自动检测你的测试,你如果想运行测试的话就无需列举他们。
- 没有一个框架能预料到你所有的需求,因此Google Test提供了EXPECT_PRED*以方便地扩展你的断言词汇表。通过良好的语法,你可以使用EXPECT_PRED*来方便地定义你自己的断言宏。
- Death tests非常方便,它能确保恰当的情况可以触发你在产品中的断言。
- 当断言失败是来自于内部的过程或者循环时,SCOPED_TRACE有助于你了解断言失败的上下文。
- 你可以使用命名模式来决定运行哪些测试。当你想快速重现某个失败时这会节省你大量时间。
Saptarshi Purkayastha花了一些时间来调研该框架并在其博客上写了一些想法。他的反应是积极的。
该框架另一个让人称道的地方就是学习其基础与高级特性都是那么容易。它与xUnit非常像并且具备了可以与CppUnit抗衡的优势。你可以从这里学习基础,从这里学习高级特性。Predicate Assertions可能是我最喜欢的特性之一了,当我们调试遇到麻烦时就可以在程序中使用该特性。还有很多其他的断言,我们还没有深入地研究他们。但是自从第一次看到该框架,我们很多人就将它作为最好的测试框架之一了...
根据wiki所述,你可以查看初级手册以尽快上手Google Test,然后请参考高级指南以了解更多内容。
可从这里下载该框架,尝试一下,然后告诉社区你的想法!
查看英文原文:Announcing: New Google C++ Testing Framework
Ryan Cooper对Amr Elssamadisy的新书发表了评价,并认为书中提供了一种为实施敏捷量身定做的框架。本书并没有给出一种人人可用的敏捷方法,而是为读者提供一些模式和工具,用以找出哪些敏捷实践可以最有效地达到该组织机构的特定目标。
这个由业界主要专家们参加的座谈会探究了在使应用程序具备尽可能好的伸缩性及性能的过程中所面临的挑战和思考过程。
本视频主要对OpenSocial进行了分析,并对实现的方式进行了介绍。其中包括:OpenSocial的开发经验、Container Provider的技术准备、平台的构成要素、具体的规范、以及对未来的展望。
Memcached在大型网站被应用得越来越广泛,但是Java客户端并不多,本文作者基于现有的开源客户端进行了封装优化,并翔实记录了这一过程。
在他们文章的第二部分,作者探讨了动态业务应用的架构并介绍了资源容器的概念。他们示范了如何在JEE之上构建这个架构,以及它如何影响实现生产力。
ClickOnce让WinForms应用程序的部署轻而易举。David Cooksey演示了如何在ASP.NET中编写一个HttpHandler来实现对ClickOnce部署的版本细分。
本文是Productive Java with Ruby系列文章的第二篇,通过上一篇的介绍,我想大家对如何利用Ruby进行单元测试有了一个基本的了解,从这里开始,我将和大家一起讨论一些利用Ruby进行单元测试时的高级话题。
2 条回复
回复