`be` 匹配器
有几个相关的 “be” 匹配器
expect(obj).to be_truthy # passes if obj is truthy (not nil or false)
expect(obj).to be_falsey # passes if obj is falsy (nil or false)
expect(obj).to be_nil # passes if obj is nil
expect(obj).to be # passes if obj is truthy (not nil or false)
The be_truthy
匹配器
给定一个名为 “betruthyspec.rb” 的文件,其中包含
RSpec.describe "be_truthy matcher" do
specify { expect(true).to be_truthy }
specify { expect(7).to be_truthy }
specify { expect("foo").to be_truthy }
specify { expect(nil).not_to be_truthy }
specify { expect(false).not_to be_truthy }
# deliberate failures
specify { expect(true).not_to be_truthy }
specify { expect(7).not_to be_truthy }
specify { expect("foo").not_to be_truthy }
specify { expect(nil).to be_truthy }
specify { expect(false).to be_truthy }
end
当我运行 rspec be_truthy_spec.rb
然后输出应包含 “10 个示例,5 个失败”
并且输出应包含
expected: falsey value
got: true
并且输出应包含
expected: falsey value
got: 7
并且输出应包含
expected: falsey value
got: "foo"
并且输出应包含
expected: truthy value
got: nil
并且输出应包含
expected: truthy value
got: false
The be_falsey
匹配器
给定一个名为 “befalseyspec.rb” 的文件,其中包含
RSpec.describe "be_falsey matcher" do
specify { expect(nil).to be_falsey }
specify { expect(false).to be_falsey }
specify { expect(true).not_to be_falsey }
specify { expect(7).not_to be_falsey }
specify { expect("foo").not_to be_falsey }
# deliberate failures
specify { expect(nil).not_to be_falsey }
specify { expect(false).not_to be_falsey }
specify { expect(true).to be_falsey }
specify { expect(7).to be_falsey }
specify { expect("foo").to be_falsey }
end
当我运行 rspec be_falsey_spec.rb
然后输出应包含 “10 个示例,5 个失败”
并且输出应包含
expected: truthy value
got: nil
并且输出应包含
expected: truthy value
got: false
并且输出应包含
expected: falsey value
got: true
并且输出应包含
expected: falsey value
got: 7
并且输出应包含
expected: falsey value
got: "foo"
The be_nil
匹配器
给定一个名为 “benilspec.rb” 的文件,其中包含
RSpec.describe "be_nil matcher" do
specify { expect(nil).to be_nil }
specify { expect(false).not_to be_nil }
specify { expect(true).not_to be_nil }
specify { expect(7).not_to be_nil }
specify { expect("foo").not_to be_nil }
# deliberate failures
specify { expect(nil).not_to be_nil }
specify { expect(false).to be_nil }
specify { expect(true).to be_nil }
specify { expect(7).to be_nil }
specify { expect("foo").to be_nil }
end
当我运行 rspec be_nil_spec.rb
然后输出应包含 “10 个示例,5 个失败”
并且输出应包含
expected: not nil
got: nil
并且输出应包含
expected: nil
got: false
并且输出应包含
expected: nil
got: true
并且输出应包含
expected: nil
got: 7
并且输出应包含
expected: nil
got: "foo"
The be
匹配器
给定一个名为 “be_spec.rb” 的文件,其中包含
RSpec.describe "be_matcher" do
specify { expect(true).to be }
specify { expect(7).to be }
specify { expect("foo").to be }
specify { expect(nil).not_to be }
specify { expect(false).not_to be }
# deliberate failures
specify { expect(true).not_to be }
specify { expect(7).not_to be }
specify { expect("foo").not_to be }
specify { expect(nil).to be }
specify { expect(false).to be }
end
当我运行 rspec be_spec.rb
然后输出应包含以下所有内容
10 个示例,5 个失败 |
预期 true 评估为 false |
预期 7 评估为 false |
预期 “foo” 评估为 false |
预期 nil 评估为 true |
预期 false 评估为 true |