Slightly confusing error message

This error message:

it ‘should’ do
proc { eval(“a=”)}.should raise_exception(/SyntaxError/)
end

   expected Exception with message matching /SyntaxError/, got

#<SyntaxError: (eval):1: syntax error, unexpected end-of-file>

Is a bit confusing, since it appears from the error output that it
does match /SyntaxError/

Might be able to word it better or along those lines.
Thanks!
-roger-

On Aug 23, 2011, at 1:00 PM, Roger P. wrote:

Is a bit confusing, since it appears from the error output that it
does match /SyntaxError/

Might be able to word it better or along those lines.
Thanks!
-roger-

Please report this to Issues · rspec/rspec-expectations · GitHub.

Cheers,
David

On Aug 23, 2011, at 3:16 PM, David C. wrote:

On Aug 23, 2011, at 1:00 PM, Roger P. wrote:

This error message:

it ‘should’ do
proc { eval(“a=”)}.should raise_exception(/SyntaxError/)
end

shouldn’t that be
raise_exception(SyntaxError)
that is, the exception class, not a Regexp literal to match its name.

-roger-

Please report this to Issues · rspec/rspec-expectations · GitHub
.

Cheers,
David


rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users

Rob B.
[email protected] http://AgileConsultingLLC.com/
[email protected] http://GaslightSoftware.com/

On Aug 23, 2011, at 3:26 PM, Rob B. wrote:

shouldn’t that be
raise_exception(SyntaxError)
that is, the exception class, not a Regexp literal to match its name.

It supports any of:

raise_error(ErrorClass)
raise_error(ErrorClass, string)
raise_error(ErrorClass, /regex/)
raise_error(string)
raise_error(/regex/)

(or raise_exception with the same set of alternatives)

Cheers,
David

On Aug 23, 2011, at 5:18 PM, David C. wrote:

it ‘should’ do
raise_error(ErrorClass, string)
raise_error(ErrorClass, /regex/)
raise_error(string)
raise_error(/regex/)

(or raise_exception with the same set of alternatives)

Cheers,
David

RSpec 1.3 (from apidock)

raise_exception(exception=Exception, message=nil, &block) public
With no args, matches if any exception is raised. With a named
exception, matches only if that specific exception is raised. With a
named exception and messsage specified as a String, matches only if
bothmatch. With a named exception and messsage specified as a Regexp,
matches only if both match. Passan optional block to perform extra
verifications on the exception matched

Rspec 2 (from
http://relishapp.com/rspec/rspec-expectations/docs/built-in-matchers/raise-error-matcher)

only shows forms with either nothing specified, or the first argument
is always the Exception class.

If you use one of:
raise_error(string)
raise_error(/regex/)
against what is the string or /regex/ matched? The message associated
to the Exception or the NAME of the exception.

expected Exception with message matching /SyntaxError/, got
#<SyntaxError: (eval):1: syntax error, unexpected end-of-file>

Is a bit confusing, since it appears from the error output that it
does match /SyntaxError/

The MESSAGE does not match /SyntaxError/ but it would have matched /
syntax error/.

I think that’s where the OP is confused.

-Rob


[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users


rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users

Rob B.
[email protected] http://AgileConsultingLLC.com/
[email protected] http://GaslightSoftware.com/

On Aug 24, 2011, at 11:48 AM, Rob B. wrote:

This error message:
It supports any of:
David

The MESSAGE does not match /SyntaxError/ but it would have matched /syntax
error/.

I think that’s where the OP is confused.

-Rob

I beefed up the doc:
rspec-expectations/features/built_in_matchers/expect_error.feature at a541a7523ef282b9bf96141f5b8a0920dda55281 · rspec/rspec-expectations · GitHub.
Relish requires pushing all the docs at once and I have no way of
knowing what the last commit was that I pushed (so I can’t really push
the current docs or roll back to the last release and patch them). So
this won’t make it to the relish site today, but will as soon as I can
get a release out.

Cheers,
David