Google

# File test/unit/assertions.rb, line 296

                        def assert_throws(expected_symbol, message="", &proc)

                                _wrap_assertion {

                                        assert_instance_of(Symbol, expected_symbol, "assert_throws expects the symbol that should be thrown for its first argument")

                                        assert(block_given?, "Should have passed a block to assert_throws")

                                        caught = true

                                        begin

                                                catch(expected_symbol) {

                                                        proc.call

                                                        caught = false

                                                }

                                                full_message = build_message(message, expected_symbol) {

                                                        | arg |

                                                        "<:#{arg}> should have been thrown"

                                                }

                                                assert(caught, full_message)

                                        rescue NameError => name_error

                                                if ( name_error.message !~ /^uncaught throw `(.+)'$/ )    #`

                                                        raise name_error

                                                end

                                                full_message = build_message(message, expected_symbol, $1) {

                                                        | arg1, arg2 |

                                                        "<:#{arg1}> expected to be thrown but\n" +

                                                        "<:#{arg2}> was thrown"

                                                }

                                                flunk(full_message)

                                        end        

                                }

                        end