Forum: RSpec slightly confusing error message

Bec38d63650c8912b6ba9b557fb953b9?d=identicon&s=25 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-
5d38ab152e1e3e219512a9859fcd93af?d=identicon&s=25 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
Ef3aa7f7e577ea8cd620462724ddf73b?d=identicon&s=25 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/
5d38ab152e1e3e219512a9859fcd93af?d=identicon&s=25 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
Ef3aa7f7e577ea8cd620462724ddf73b?d=identicon&s=25 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/
5d38ab152e1e3e219512a9859fcd93af?d=identicon&s=25 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
This topic is locked and can not be replied to.