Forum: Ruby on Rails rspec issues

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
1f36de0ab637612b390bbc4ac52b0b80?d=identicon&s=25 huard.elise@gmail.com (Guest)
on 2008-10-31 08:41
(Received via mailing list)
Hi,

i've started using rspec for this project (latest versions: rspec
1.1.9 and rspec-rails 1.1.9), and i stumbled upon the following
problems:
- render_template:
response.should render_template('new')
i get the following fail
expected "new", got "/Users/elise/Rails/myapp/app/views/user/profiles/
new.html.erb"
So it expects the full path. That can't be right ?

- should be: doesn't give me the result i expect for two strings that
are equal.
assigns['page'].menu.should be("home alone")
gives me
expected "home alone", got "home alone"

- mocking (ok, i'm using mocha, so maybe it isn't rspec):  i make a
mailer raise an error like this:
DummyMailer.stubs(:deliver_invitation).raises(Exception)
and in my code, surround this with begin ... rescue, the exception is
not caught !

Any tips ?

Thanks !

Elise
82a61255b4090da7d3619f870b0794dc?d=identicon&s=25 James Mead (floehopper)
on 2008-10-31 10:06
(Received via mailing list)
Hi Elise,

2008/10/31 huard.elise@gmail.com <huard.elise@gmail.com>

> - mocking (ok, i'm using mocha, so maybe it isn't rspec):  i make a
> mailer raise an error like this:
> DummyMailer.stubs(:deliver_invitation).raises(Exception)
> and in my code, surround this with begin ... rescue, the exception is
> not caught !
>

a) Are you sure deliver_invitation is being called?
b) Are you using just a default rescue clause? This will only rescue
StandardError's and descendants of StandardError. Exception is not a
descendant of StandardError. I think Mocha raises a StandardError by
default, so if you change your stubbing as follows, a default rescue
clause
will work...

  DummyMailer.stubs(:deliver_invitation).raises

If you are still seeing unexpected behaviour, come over to the Mocha
mailing
list [1] and we'll see if we can help.

--
James.
http://blog.floehopper.org

[1] http://groups.google.com/group/mocha-developer
2d8132658d56e51f19ace1c68e48b6aa?d=identicon&s=25 Thorsten Mueller (thorsten)
on 2008-10-31 10:44
(Received via mailing list)
> - render_template:
> response.should render_template('new')
> i get the following fail
> expected "new", got "/Users/elise/Rails/myapp/app/views/user/profiles/
> new.html.erb"
> So it expects the full path. That can't be right ?

nope, it expects new and gets the full path instead.
what's your render command?

> - should be: doesn't give me the result i expect for two strings that
> are equal.
> assigns['page'].menu.should be("home alone")
> gives me
> expected "home alone", got "home alone"
>

Typical ruby thing. "should be" tests for the two
strings are an identical string object (one and the same thingy in
memory)
use:
assigns['page'].menu.should eql("home alone")
1f36de0ab637612b390bbc4ac52b0b80?d=identicon&s=25 huard.elise@gmail.com (Guest)
on 2008-11-02 14:20
(Received via mailing list)
> > expected "new", got "/Users/elise/Rails/myapp/app/views/user/profiles/
> > new.html.erb"
> > So it expects the full path. That can't be right ?
>
> nope, it expects new and gets the full path instead.
> what's your render command?
render :action => :new

> Typical ruby thing. "should be" tests for the two
> strings are an identical string object (one and the same thingy in
> memory)
> use:
> assigns['page'].menu.should eql("home alone")
OK, thanks

Elise
1f36de0ab637612b390bbc4ac52b0b80?d=identicon&s=25 huard.elise@gmail.com (Guest)
on 2008-11-02 14:22
(Received via mailing list)
b) makes sense, though it is surprising:  I mean developer-defined
errors are usually Exceptions, and should be caught too, no ?  I need
to pick up my ruby book again.

Elise
1f36de0ab637612b390bbc4ac52b0b80?d=identicon&s=25 huard.elise@gmail.com (Guest)
on 2008-11-02 14:37
(Received via mailing list)
b) makes sense, though it is surprising:  I mean developer-defined
errors are usually Exceptions, and should be caught too, no ?  I need
to pick up my ruby book again.

Elise
82a61255b4090da7d3619f870b0794dc?d=identicon&s=25 James Mead (floehopper)
on 2008-11-02 15:48
(Received via mailing list)
2008/11/2 huard.elise@gmail.com <huard.elise@gmail.com>
>
> b) makes sense, though it is surprising:  I mean developer-defined
> errors are usually Exceptions, and should be caught too, no ?  I need
> to pick up my ruby book again.
>

It's a common developer mistake to derive new exception classes from
Exception, rather than StandardError. Such exception classes will not be
rescued by a default rescue clause.

--
James.
http://blog.floehopper.org
This topic is locked and can not be replied to.