BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

RubySpec官方网站及其参与Google编程之夏的学生

| 作者 Mirko Stocker 关注 1 他的粉丝 ,译者 贾晓楠 关注 0 他的粉丝 发布于 2008年5月28日. 估计阅读时间: 4 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

Brian Ford宣布开通了RubySpec项目的官方网站:  

该项目的目标是基于RSpect风格的规范(specs)为Ruby编程语言建立一个完整的可执行规范。这个项目一开始只是一个早期Rubinius开发者眼里的小火苗。后来它发展到由热心的人们贡献的超过6900个实例和25600个期望。

Ruby语言并没有一个正式的标准来规定它的表现和性能。而且Ruby的实现版本越来越多,因此必然需要一个规范。在现代软件开发的精神下,可执行的规范要好于用其他形式的规范。因为它能够执行,而且几乎可以立即给出反馈。这样就很容易对一致性进行验证。

Federico Builes和Arthur Schreiber两位同学正准备参加即将开始的Google编程之夏(Google Summer of Code)活动。他们打算对Ruby规范进行改进和扩展。我们访问了他们两个,谈了他们准备在这个夏天做哪些工作。

Federico Builes是哥伦比亚大学的学生。他是两年前在寻找用什么来代替C时开始接触Ruby的。现在他正在参与Rubinius项目的开发。我们问了他在这次在Google编程之夏活动中的目标:  

项目的第一部分是为一些标准库和内核库写规范(测试),包括REXML、YAML、 Logger、Socket和IO。

剩下的部分(由Charles Oliver Nutter所建议)是看一看其他Ruby实现版本所使用的不同的测试用例,并把它们移植到Rubyspec中,使我们的规范尽可能完整。 

我们还问了Federico怎样找出缺少测试的代码:  

由于我已经确定了要用的哪些库,我就直接找出这些库的文档,查看一个方法的功能,然后写出相应的规范。如果这个方法像文档所写的那样工作,就非常好。如果不是,我就去读源代码,看看到底是怎么回事。

先 阅读文档而不是直接去读代码的一个好处是,你能经常看到有些东西不按照要求来工作。当我阅读REXML规范时,我在一天内就为一些小错误和过时的文档发了 三四个补丁。现在,他们在Ruby 1.9中都修补好了。由于Rubyspec是MRI的一部分,我想这类错误应该会被很快发现并修补。

另外,MSpec是一个我们在Rubyspec中使用的RSpec复制品,它能帮你为还没有测试的库建立标志,然后你可以把它们标记成未完成、就绪、在X或Y实现版本上失败等状态。这样你就能看到一些库会在某些Ruby实现版本中出问题,然后着手去解决。慢慢地你就会发现测试用例覆盖了所有的改变。

19岁的Arthur Schreiber来自德国,他是另一个参与此项目的学生。他从2007年5月开始接触Rubinius,提交了许多补丁,修补了一些错误和许多文档。我们问了他同样的问题: 

在这次GSoC活动中,我的目标是为一些Ruby标准库建立或者改进规范,包括CGI、StringIO、Net、Set以及其它一些更小的库。

我们使用的主要工具之一是MSpec。它是一个兼容RSpec的BDD框架,是由Rubinius团队的Brian Ford开发的。MSpec的目的是通过回避Ruby语言的高级特性,让未完成的实现也能运行规范。

MSpec支持一种基本的覆盖功能,可以指出尚没有规范的方法。可是这个功能已经被去掉了,分别放进了MSpec和Rubyspecs各自的库里。Brian Ford准备尽快把这个功能重新加进去。还有一种想法,是采用RCov来检查标准库的规范覆盖情况。

如果你想做一些贡献,Vladimir Sizikov写了一篇RubySpec快速入门指南,讲解了入门的基本步骤。要了解该项目的详细情况,请访问RubySpec网站

查看原文:The Official RubySpec Website and Its Google Summer of Code Students

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT