Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Tree: 3b0e9577e7
Fetching contributors…

Cannot retrieve contributors at this time

136 lines (125 sloc) 4.271 kB
Feature: "be" matchers
There are several related "be" matchers:
obj.should be_true # passes if obj is truthy (not nil or false)
obj.should be_false # passes if obj is falsy (nil or false)
obj.should be_nil # passes if obj is nil
obj.should be # passes if obj is not nil
Scenario: be_true matcher
Given a file named "be_true_spec.rb" with:
"""
describe "be_true matcher" do
specify { true.should be_true }
specify { 7.should be_true }
specify { "foo".should be_true }
specify { nil.should_not be_true }
specify { false.should_not be_true }
# deliberate failures
specify { true.should_not be_true }
specify { 7.should_not be_true }
specify { "foo".should_not be_true }
specify { nil.should be_true }
specify { false.should be_true }
end
"""
When I run "rspec be_true_spec.rb"
Then the output should contain all of these:
| 10 examples, 5 failures |
| expected true not to be true |
| expected 7 not to be true |
| expected "foo" not to be true |
| expected nil to be true |
| expected false to be true |
Scenario: be_false matcher
Given a file named "be_false_spec.rb" with:
"""
describe "be_false matcher" do
specify { nil.should be_false }
specify { false.should be_false }
specify { true.should_not be_false }
specify { 7.should_not be_false }
specify { "foo".should_not be_false }
# deliberate failures
specify { nil.should_not be_false }
specify { false.should_not be_false }
specify { true.should be_false }
specify { 7.should be_false }
specify { "foo".should be_false }
end
"""
When I run "rspec be_false_spec.rb"
Then the output should contain all of these:
| 10 examples, 5 failures |
| expected nil not to be false |
| expected false not to be false |
| expected true to be false |
| expected 7 to be false |
| expected "foo" to be false |
Scenario: be_nil matcher
Given a file named "be_nil_spec.rb" with:
"""
describe "be_nil matcher" do
specify { nil.should be_nil }
specify { false.should_not be_nil }
specify { true.should_not be_nil }
specify { 7.should_not be_nil }
specify { "foo".should_not be_nil }
# deliberate failures
specify { nil.should_not be_nil }
specify { false.should be_nil }
specify { true.should be_nil }
specify { 7.should be_nil }
specify { "foo".should be_nil }
end
"""
When I run "rspec be_nil_spec.rb"
Then the output should contain "10 examples, 5 failures"
And the output should contain:
"""
expected: not nil
got: nil
"""
And the output should contain:
"""
expected: nil
got: false
"""
And the output should contain:
"""
expected: nil
got: true
"""
And the output should contain:
"""
expected: nil
got: 7
"""
And the output should contain:
"""
expected: nil
got: "foo"
"""
Scenario: be matcher
Given a file named "be_spec.rb" with:
"""
describe "be_matcher" do
specify { true.should be }
specify { 7.should be }
specify { "foo".should be }
specify { nil.should_not be }
specify { false.should_not be }
# deliberate failures
specify { true.should_not be }
specify { 7.should_not be }
specify { "foo".should_not be }
specify { nil.should be }
specify { false.should be }
end
"""
When I run "rspec be_spec.rb"
Then the output should contain all of these:
| 10 examples, 5 failures |
| expected true to evaluate to false |
| expected 7 to evaluate to false |
| expected "foo" to evaluate to false |
| expected nil to evaluate to true |
| expected false to evaluate to true |
Jump to Line
Something went wrong with that request. Please try again.