Forum: RSpec slightly confusing error message

Posted by Roger Pack (rogerdpack)
on 2011-08-23 20:00
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-
Posted by David Chelimsky (Guest)
on 2011-08-23 21:32
(Received via mailing list)
On Aug 23, 2011, at 1:00 PM, Roger Pack 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 http://github.com/rspec/rspec-expectations/issues.

Cheers,
David
Posted by Rob Biedenharn (Guest)
on 2011-08-23 23:14
(Received via mailing list)
On Aug 23, 2011, at 3:16 PM, David Chelimsky wrote:

> On Aug 23, 2011, at 1:00 PM, Roger Pack 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 http://github.com/rspec/rspec-expectations/issues
> .
>
> Cheers,
> David
> _______________________________________________
> rspec-users mailing list
> rspec-users@rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users

Rob Biedenharn
Rob@AgileConsultingLLC.com  http://AgileConsultingLLC.com/
rab@GaslightSoftware.com    http://GaslightSoftware.com/
Posted by David Chelimsky (Guest)
on 2011-08-23 23:44
(Received via mailing list)
On Aug 23, 2011, at 3:26 PM, Rob Biedenharn 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
Posted by Rob Biedenharn (Guest)
on 2011-08-24 20:29
(Received via mailing list)
On Aug 23, 2011, at 5:18 PM, David Chelimsky 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...)

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

>>> _______________________________________________
>> rspec-users@rubyforge.org
>> http://rubyforge.org/mailman/listinfo/rspec-users
>
> _______________________________________________
> rspec-users mailing list
> rspec-users@rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users

Rob Biedenharn
Rob@AgileConsultingLLC.com  http://AgileConsultingLLC.com/
rab@GaslightSoftware.com    http://GaslightSoftware.com/
Posted by David Chelimsky (Guest)
on 2011-08-26 17:13
(Received via mailing list)
On Aug 24, 2011, at 11:48 AM, Rob Biedenharn 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: 
https://github.com/rspec/rspec-expectations/blob/a.... 
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
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.