RSpec 2.13 发布!

Myron Marston

2013年2月23日

我刚刚发布了 RSpec 2.13。这是一个次要版本,包含一些向后兼容的增强功能和许多错误修复。建议所有用户升级。

感谢所有为 RSpec 版本发布做出贡献的人。

值得注意的新功能

分析超过 10 个示例

RSpec 长期以来一直提供 --profile 选项。它会输出最慢的 10 个示例的报告。现在,您可以传递一个数字选项以使其打印超过 10 个示例。

要打印出最慢的 15 个示例,您可以使用

rspec --profile 15

letsubject 声明可以使用 super

用户一直要求这样做。这允许您在嵌套组中覆盖 letsubject 声明,同时委托给父组的原始定义。只需使用 super()

describe Array do
  let(:numbers) { [1, 2, 3, 4] }

  context "when evens are filtered out" do
    let(:numbers) { super().reject(&:even?) }
  end
end

请注意,要使用此功能,您 *必须* 在调用 super 时使用显式括号;否则 ruby 会给您一个难看的 implicit argument passing of super from method defined by define_method() is not supported 错误。

be_within 匹配器支持百分比增量

这最好用一个例子来说明

# The existing `be_within` matcher (which still works):
expect(account.balance).to be_within(10).of(500)

# Now you can do this, too:
expect(account.balance).to be_within(2).percent_of(500)

include 匹配器可以接受匹配器列表

当您想要验证列表中项目的某些内容,而不仅仅是验证项目的标识时,这非常方便。

RSpec::Matchers.define :a_user_named do |name|
  match do |user|
    user.name == name
  end
end

expect(users).to include(a_user_named("Coen"), a_user_named("Daphne"))

文档

RDoc

Cucumber 特性

发行说明

rspec-core 2.13.0

完整变更日志

增强功能

错误修复

rspec-expectations 2.13.0

完整变更日志

增强功能

错误修复

rspec-mocks 2.13.0

完整变更日志

错误修复

rspec-rails 2.13.0

完整变更日志

增强功能