Forum: Ruby testing local vars and exceptions

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.
2ebf42f8625b86c0e91ae7bd4e2bef52?d=identicon&s=25 Raymond O'Connor (nappin)
on 2007-01-31 05:00
Hi
Two questions:
I'm new to testing, so my apologies if this is really basic, but is
there anyway to test the value of a local variable in my unit tests?  So
far I've been making everything instance vars that don't really need to
be, so I can see their value in my unit tests.

Also, one of my methods calls another method in a 3rd party library that
could throw an exception if there's no network connection.  My method
has some special logic in it to handle this exception.  I would like to
test this in a unit test for the method but I can't figure out how to
throw this exception since its raised in a method I don't have control
over.  I guess I could put a  'raise exception if test' in my method but
that doesn't seem right.  Is there any better way to test this?

Thanks in advance for the help,
-Ray
93d566cc26b230c553c197c4cd8ac6e4?d=identicon&s=25 Pit Capitain (Guest)
on 2007-01-31 12:35
(Received via mailing list)
Raymond O'connor schrieb:
> I'm new to testing, so my apologies if this is really basic, but is
> there anyway to test the value of a local variable in my unit tests?  So
> far I've been making everything instance vars that don't really need to
> be, so I can see their value in my unit tests.

I have never needed to test local variables. Can you give an example why
you would like to do this?

> Also, one of my methods calls another method in a 3rd party library that
> could throw an exception if there's no network connection.  My method
> has some special logic in it to handle this exception.  I would like to
> test this in a unit test for the method but I can't figure out how to
> throw this exception since its raised in a method I don't have control
> over.  I guess I could put a  'raise exception if test' in my method but
> that doesn't seem right.  Is there any better way to test this?

Test doubles. See
http://www.martinfowler.com/articles/mocksArentStubs.html for an
explanation. There are some Ruby frameworks you can use. Look for "mock"
on http://rubyforge.org.

Regards,
Pit
This topic is locked and can not be replied to.