比较匹配器
RSpec 提供了许多基于 Ruby 内置运算符的匹配器。这些可以用于值的一般化比较。例如
expect(9).to be > 6
expect(3).to be <= 3
expect(1).to be < 6
expect('a').to be < 'b'
数值运算符匹配器
给定一个名为“numericoperatormatchers_spec.rb”的文件,其中包含
RSpec.describe 18 do
it { is_expected.to be < 20 }
it { is_expected.to be > 15 }
it { is_expected.to be <= 19 }
it { is_expected.to be >= 17 }
# deliberate failures
it { is_expected.to be < 15 }
it { is_expected.to be > 20 }
it { is_expected.to be <= 17 }
it { is_expected.to be >= 19 }
it { is_expected.to be < 'a' }
end
RSpec.describe 'a' do
it { is_expected.to be < 'b' }
# deliberate failures
it { is_expected.to be < 18 }
end
当我运行 rspec numeric_operator_matchers_spec.rb
则输出应包含“11 个示例,6 个失败”
并且输出应包含
Failure/Error: it { is_expected.to be < 15 }
expected: < 15
got: 18
并且输出应包含
Failure/Error: it { is_expected.to be > 20 }
expected: > 20
got: 18
并且输出应包含
Failure/Error: it { is_expected.to be <= 17 }
expected: <= 17
got: 18
并且输出应包含
Failure/Error: it { is_expected.to be >= 19 }
expected: >= 19
got: 18
并且输出应包含
Failure/Error: it { is_expected.to be < 'a' }
expected: < "a"
got: 18
并且输出应包含
Failure/Error: it { is_expected.to be < 18 }
expected: < 18
got: "a"
字符串运算符匹配器
给定一个名为“stringoperatormatchers_spec.rb”的文件,其中包含
RSpec.describe "Strawberry" do
it { is_expected.to be < "Tomato" }
it { is_expected.to be > "Apple" }
it { is_expected.to be <= "Turnip" }
it { is_expected.to be >= "Banana" }
# deliberate failures
it { is_expected.to be < "Cranberry" }
it { is_expected.to be > "Zuchini" }
it { is_expected.to be <= "Potato" }
it { is_expected.to be >= "Tomato" }
end
当我运行 rspec string_operator_matchers_spec.rb
则输出应包含“8 个示例,4 个失败”
并且输出应包含
Failure/Error: it { is_expected.to be < "Cranberry" }
expected: < "Cranberry"
got: "Strawberry"
并且输出应包含
Failure/Error: it { is_expected.to be > "Zuchini" }
expected: > "Zuchini"
got: "Strawberry"
并且输出应包含
Failure/Error: it { is_expected.to be <= "Potato" }
expected: <= "Potato"
got: "Strawberry"
并且输出应包含
Failure/Error: it { is_expected.to be >= "Tomato" }
expected: >= "Tomato"
got: "Strawberry"