cover 匹配器

使用 cover 匹配器指定范围涵盖一个或多个预期对象。这适用于任何响应 #cover? 的对象(例如 Range

  expect(1..10).to cover(5)
  expect(1..10).to cover(4, 6)
  expect(1..10).not_to cover(11)

范围用法

给定一个名为“rangecovermatcher_spec.rb”的文件,其中包含

RSpec.describe (1..10) do
  it { is_expected.to cover(4) }
  it { is_expected.to cover(6) }
  it { is_expected.to cover(8) }
  it { is_expected.to cover(4, 6) }
  it { is_expected.to cover(4, 6, 8) }
  it { is_expected.not_to cover(11) }
  it { is_expected.not_to cover(11, 12) }

  # deliberate failures
  it { is_expected.to cover(11) }
  it { is_expected.not_to cover(4) }
  it { is_expected.not_to cover(6) }
  it { is_expected.not_to cover(8) }
  it { is_expected.not_to cover(4, 6, 8) }

  # both of these should fail since it covers 5 but not 11
  it { is_expected.to cover(5, 11) }
  it { is_expected.not_to cover(5, 11) }
end

我运行 rspec range_cover_matcher_spec.rb

那么输出应包含以下所有内容

14 个示例,7 个失败
预期 1..10 涵盖 11
预期 1..10 不涵盖 4
预期 1..10 不涵盖 6
预期 1..10 不涵盖 8
预期 1..10 不涵盖 4、6 和 8
预期 1..10 涵盖 5 和 11
预期 1..10 不涵盖 5 和 11