RSpec 3.9 已发布,RSpec 团队也有一些变化。

Jon Rowe

2019 年 10 月 16 日

RSpec 3.9 刚刚发布! 由于 RSpec 项目遵循 语义版本控制,任何已经使用 RSpec 3 的用户都应该能够无缝升级到此版本,但是如果我们引入了回归,请告诉我们,我们会尽快发布一个补丁版本来解决它。

我们遗憾地宣布,Penelope Phippen 已从项目中退休,留下我和 Jon Rowe 作为未来唯一的首席维护者,但并非全是坏消息,我们欢迎我们最新的核心团队成员 Phil Pirozhkov

感谢 Penelope 多年来付出的辛勤努力,并欢迎 Phil!

这是 RSpec gems(rspecrspec-corerspec-expectationsrspec-mocks)与 rspec-rails 同步的最后一个版本。 我们将很快推出 rspec-rails 4,它将被归类为扩展 gem,并且不会与核心 gem 版本同步,这将使我们能够将 rspec-rails 与 Rails 版本保持同步,更多信息很快公布。

RSpec 继续从世界各地获得贡献,我们有 369 次提交和 98 个合并的拉取请求来自 52 个不同的贡献者,他们帮助实现了此版本的发布。 感谢大家 :)

值得注意的更改

核心:改进的错误处理

如果 RSpec 在加载支持文件时遇到错误,它现在将跳过加载规范文件,从而消除由于早期错误导致的后续混乱错误。 此外,如果可用,将针对遇到的任何 LoadError 显示 did_you_mean 建议。

核心:命令行界面改进,--example-matches

在 3.9 版本发布后,您现在可以使用 --example-matches 通过正则表达式过滤您的示例,如果您只知道示例名称的一部分或在多个不同文件中具有相同主题的规范,这将非常有用。

核心:新格式化程序

在 3.9 中,您会发现一个新的内置格式化程序选项,即故障列表格式化程序,可以通过命令行使用 --format f--format failure_list,或者通过 RSpec::Configuration#formatter 方法使用。 此新的格式化程序以更简化的“快速修复”样式输出产生输出。

期望:respond_to(:new)

respond_to 匹配器现在专门处理 :new 并在它是标准类方法时检查 :initialize

期望:空差异警告

在 3.9 之前,当您的匹配器失败但测试中项目的检查输出相同时,您将得到一个令人困惑的差异,其中两边看起来都一样,我们现在检测到这种情况并发出警告。

模拟:改进的线程安全性

对于运行并行化规范的人来说,这是一个额外的好处,3.9 通过添加互斥锁来避免死锁错误,从而对我们的线程行为进行了一些改进。

Rails:rails_helper.rb 改进

3.9 中的一个小调整,将生成的 rails_helper.rb 与 Ruby 语义保持一致,并在较新的 Ruby 上使用 __dir__ 而不是 __FILE__

Rails:新的电子邮件匹配器

添加一个新的 have_enqueued_mail 匹配器,以便更容易断言邮件特定的活动作业。

Rails:新的生成器

3.9 版本带来了一些新的生成器脚手架,您现在可以在 Rails 5.1 及更高版本上生成系统规范,为生成器生成规范,以及在生成控制器规范时添加路由。

统计

合并

rspec-core

rspec-expectations

rspec-mocks

rspec-rails

rspec-support

文档

API 文档

Cucumber 特性

发行说明

rspec-core-3.9.0

完整变更日志

增强功能:* 改进加载支持文件时错误的处理,如果在加载规范之前文件出错,RSpec 现在将跳过加载规范。 (David Rodríguez, #2568) * 添加对 –example-matches 的支持,以通过正则表达式运行示例。 (Sam Joseph, Matt Rider, @okothkongo1, #2586) * 添加 did_you_mean 建议,用于在示例外部遇到 LoadError 的文件名。 (@obromios, #2601) * 添加一个简化的快速修复样式格式化程序,只输出故障作为 file:line:message。 (Romain Tartière, #2614) * 将字符串数字值转换为整数,当用于 RSpec::Configuration#fail_fast 时 (Viktor Fonic, #2634) * 当对 RSpec::Configuration#fail_fast 使用无效值时发出警告 (Viktor Fonic, #2634) * 添加对在干净环境中运行 Rake 任务的支持。 (Jon Rowe, #2632) * 在文档格式化程序中,通过其示例组/示例缩进消息。 (Samuel Williams, #2649)

rspec-expectations-3.9.0

完整变更日志

增强功能

rspec-mocks-3.9.0

完整变更日志

增强功能

rspec-rails-3.9.0

完整变更日志

增强功能

错误修复