历史

RSpec 起源于 2005 年,最初是 Steven Baker 的一项实验,Dave Astels 和 Aslak Hellesøy 在早期做出了贡献。 David Chelimsky 在那个夏天加入了团队,并在 2006 年接手了项目领导。David 还构建了 rspec-rails,它与 Ruby on Rails 紧密集成。

RSpec 1.0 于 2007 年 5 月发布,其中包含了许多今天仍在 RSpec 中存在的特性。RSpec 1 的运行器具有许多很棒的特性,但它已经达到了速度慢且难以继续演化的程度。

在 2008 年底,Chad Humphries 构建了 Micronaut,一个新的规范运行器,旨在解决这些问题。Micronaut 还包含一个新的元数据系统,该系统提供了比 RSpec 1 更大的灵活性。

在 2010 年初,RSpec 1.3 发布后,David 和 Chad 开始开发 RSpec 2。该项目被拆分为单独的模块化部分,可以单独使用或全部使用。Micronaut 被用作 rspec-core 的基础,rspec-core 是新的运行器。RSpec 2 于 2010 年 10 月发布,经过近一年的努力。

在 2012 年 11 月,领导项目 6 年后,David 决定 转向其他领域。他要求 Myron Marston 接任 RSpec 主要维护者,并要求 Andy Lindeman 接任 rspec-rails 主要维护者。

RSpec 3 的开发 开始于 2013 年 7 月,它 于 2014 年 6 月发布。RSpec 3 对 RSpec 进行了一次“春季大扫除”,删除了许多废弃代码(其中一些可以追溯到 RSpec 1!)。它还提供了 验证模拟对象可组合匹配器、一种新的语法,允许 RSpec 在没有猴子补丁的情况下使用,以及 许多其他新特性。Andy Lindeman 退出了团队,并要求 Aaron Kromer 接任 rspec-rails 主要维护者。

2018 年 9 月,Myron Marston 辞去了 RSpec 主要维护者的职位(与 David 的 6 年任期相呼应),并将职位移交给 Jon Rowe 和 Penelope Phippen,他们成为了 RSpec 和 RSpec-Rails 的新主要维护者。一年后,Penelope 辞职 专注于 rubyfmt,将 Jon Rowe 留在 RSpec 的主要维护者职位。

2020 年 3 月,RSpec Rails 4.0 发布,此次发布将其与其他 RSpec gem 的发布周期脱钩,以保持与 Rails 的同步。

如今,RSpec 仍在不断改进和发展,这要归功于庞大社区的贡献和数百位贡献者的努力。

幕后推动者

团队

Jon Rowe
Jon Rowe
websitetwittergithub
Benoit Tigeot
Benoit Tigeot
websitetwittergithub
Phil Pirozhkov
Phil Pirozhkov
websitegithub
Xavier Shay
Xavier Shay
websitetwittergithub
Yuji Nakayama
Yuji Nakayama
websitetwittergithub

校友

(按姓氏字母顺序排列)

Dave Astels
Dave Astels
twittergithub
Steven Baker
Steven Baker
twittergithub
David Chelimsky
David Chelimsky
twittergithub
Aslak Hellesøy
Aslak Hellesøy
websitetwittergithub
Chad Humphries
Chad Humphries
websitetwittergithub
Justin Ko
Justin Ko
twittergithub
Aaron Kromer
Aaron Kromer
websitetwittergithub
Andy Lindeman
Andy Lindeman
websitetwittergithub
Pat Maddox
Pat Maddox
websitetwittergithub
Myron Marston
Myron Marston
websitetwittergithub
Penelope Phippen
Penelope Phippen
websitetwittergithub
Luke Redpath
Luke Redpath
websitetwittergithub
Bradley Schaefer
Bradley Schaefer
twittergithub
Brian Takita
Brian Takita
websitetwittergithub