To add a collaborator to this project you will need to use the Relish gem to add the collaborator via a terminal command. Soon you'll be able to also add collaborators here!
More about adding a collaboratorThrow symbol matcher
The throw_symbol matcher is used to specify that a block of code
throws a symbol. The most basic form passes if any symbol is thrown:
expect { throw :foo }.to throw_symbol
You'll often want to specify that a particular symbol is thrown:
expect { throw :foo }.to throw_symbol(:foo)
If you care about the additional argument given to throw, you can
specify that as well:
expect { throw :foo, 7 }.to throw_symbol(:foo, 7)
- Scenarios
-
- basic usage
-
- Given
-
a file named "throw_symbol_matcher_spec.rb" with:
describe "throw" do specify { expect { throw :foo }.to throw_symbol } specify { expect { throw :bar, 7 }.to throw_symbol } specify { expect { 5 + 5 }.to_not throw_symbol } # deliberate failures specify { expect { throw :foo }.to_not throw_symbol } specify { expect { throw :bar, 7 }.to_not throw_symbol } specify { expect { 5 + 5 }.to throw_symbol } end
- When
- I run "rspec throw_symbol_matcher_spec.rb"
- Then
-
the output should contain all of these:
6 examples, 3 failures expected no Symbol to be thrown, got :foo expected no Symbol to be thrown, got :bar expected a Symbol to be thrown, got nothing
- specify thrown symbol
-
- Given
-
a file named "throw_symbol_matcher_spec.rb" with:
describe "throw symbol" do specify { expect { throw :foo }.to throw_symbol(:foo) } specify { expect { throw :foo, 7 }.to throw_symbol(:foo) } specify { expect { 5 + 5 }.to_not throw_symbol(:foo) } specify { expect { throw :bar }.to_not throw_symbol(:foo) } # deliberate failures specify { expect { throw :foo }.to_not throw_symbol(:foo) } specify { expect { throw :foo, 7 }.to_not throw_symbol(:foo) } specify { expect { 5 + 5 }.to throw_symbol(:foo) } specify { expect { throw :bar }.to throw_symbol(:foo) } end
- When
- I run "rspec throw_symbol_matcher_spec.rb"
- Then
-
the output should contain all of these:
8 examples, 4 failures expected :foo not to be thrown, got :foo expected :foo not to be thrown, got :foo with 7 expected :foo to be thrown, got nothing expected :foo to be thrown, got :bar
- specify thrown symbol and argument
-
- Given
-
a file named "throw_symbol_argument_matcher_spec.rb" with:
describe "throw symbol with argument" do specify { expect { throw :foo, 7 }.to throw_symbol(:foo, 7) } specify { expect { throw :foo, 8 }.to_not throw_symbol(:foo, 7) } specify { expect { throw :bar, 7 }.to_not throw_symbol(:foo, 7) } specify { expect { throw :foo }.to_not throw_symbol(:foo, 7) } # deliberate failures specify { expect { throw :foo, 7 }.to_not throw_symbol(:foo, 7) } specify { expect { throw :foo, 8 }.to throw_symbol(:foo, 7) } specify { expect { throw :bar, 7 }.to throw_symbol(:foo, 7) } specify { expect { throw :foo }.to throw_symbol(:foo, 7) } end
- When
- I run "rspec throw_symbol_argument_matcher_spec.rb"
- Then
-
the output should contain all of these:
8 examples, 4 failures expected :foo with 7 not to be thrown, got :foo with 7 expected :foo with 7 to be thrown, got :foo with 8 expected :foo with 7 to be thrown, got :bar expected :foo with 7 to be thrown, got :foo with no argument
Last published over 7 years ago by .