-
-
Save bobanj/3063329 to your computer and use it in GitHub Desktop.
RSpec Matchers
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ## Built-in matchers | |
| ### Equivalence | |
| ```ruby | |
| actual.should eq(expected) # passes if actual == expected | |
| actual.should == expected # passes if actual == expected | |
| actual.should eql(expected) # passes if actual.eql?(expected) | |
| ``` | |
| ### Identity | |
| ```ruby | |
| actual.should be(expected) # passes if actual.equal?(expected) | |
| actual.should equal(expected) # passes if actual.equal?(expected) | |
| ``` | |
| ### Comparisons | |
| ```ruby | |
| actual.should be > expected | |
| actual.should be >= expected | |
| actual.should be <= expected | |
| actual.should be < expected | |
| actual.should be_within(delta).of(expected) | |
| ``` | |
| ### Regular expressions | |
| ```ruby | |
| actual.should =~ /expression/ | |
| actual.should match(/expression/) | |
| ``` | |
| ### Types/classes | |
| ```ruby | |
| actual.should be_an_instance_of(expected) | |
| actual.should be_a_kind_of(expected) | |
| ``` | |
| ### Truthiness | |
| ```ruby | |
| actual.should be_true # passes if actual is truthy (not nil or false) | |
| actual.should be_false # passes if actual is falsy (nil or false) | |
| actual.should be_nil # passes if actual is nil | |
| ``` | |
| ### Expecting errors | |
| ```ruby | |
| expect { ... }.to raise_error | |
| expect { ... }.to raise_error(ErrorClass) | |
| expect { ... }.to raise_error("message") | |
| expect { ... }.to raise_error(ErrorClass, "message") | |
| ``` | |
| ### Expecting throws | |
| ```ruby | |
| expect { ... }.to throw_symbol | |
| expect { ... }.to throw_symbol(:symbol) | |
| expect { ... }.to throw_symbol(:symbol, 'value') | |
| ``` | |
| ### Predicate matchers | |
| ```ruby | |
| actual.should be_xxx # passes if actual.xxx? | |
| actual.should have_xxx(:arg) # passes if actual.has_xxx?(:arg) | |
| ``` | |
| ### Ranges (Ruby >= 1.9 only) | |
| ```ruby | |
| (1..10).should cover(3) | |
| ``` | |
| ### Collection membership | |
| ```ruby | |
| actual.should include(expected) | |
| actual.should start_with(expected) | |
| actual.should end_with(expected) | |
| ``` | |
| #### Examples | |
| ```ruby | |
| [1,2,3].should include(1) | |
| [1,2,3].should include(1, 2) | |
| [1,2,3].should start_with(1) | |
| [1,2,3].should start_with(1,2) | |
| [1,2,3].should end_with(3) | |
| [1,2,3].should end_with(2,3) | |
| {:a => 'b'}.should include(:a => 'b') | |
| "this string".should include("is str") | |
| "this string".should start_with("this") | |
| "this string".should end_with("ring") | |
| ``` |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment