Test::Unit and one-time setup and teardown

Does anyone know of a way of performing one-time setup and teardown per
Test::Unit::TestCase?

I have an integration test with an external component where,
unfortunately, mocking out a server response is not feasible. So I need
to mount a servlet to interact with my test. It would be pointless and
slow to do this once for every test method. I know other unit testing
frameworks define such callbacks. Does Test::Unit? If not, is there a
clever way of getting around it?

I am using Rails’s ‘test/helper’, so I’m not instantiating my own test
harness. Obviously, I can setup any needed resources in the class scope
of the unit test itself, BUT that still doesn’t give me a callback for
teardown.

Any ideas?

Thanks for your help.

– Ara V.

On 2/27/07, Ara V. [email protected] wrote:

– Ara V.

Déjà vu ???
As I pointed out in the previous thread I do my setup in some constant
accessible way, e.g. in a module or class or on script level.

Let us assume that I have a testobject that supports setup and teardown

MyTestObj = Testobject.new
MyTestObj.setup

class Tester < test::unit::Testcase
etc
etc

for teardown you have to experiment with at_exit but I hope, please
test it though
that

at_exit do
MyTestObj.teardown
end

is not executed before the execution of the Testsuit by the
testrunner, not sure alas.
You can still write a pseudo testcase for the teardown but I agree
that this is a pain.

HTH
Robert

On Feb 27, 2007, at 3:25 PM, Ara V. wrote:

I am using Rails’s ‘test/helper’, so I’m not instantiating my own
test harness. Obviously, I can setup any needed resources in the
class scope of the unit test itself, BUT that still doesn’t give me
a callback for teardown.

Any ideas?

Have you tried BEGIN {} and END {}? But perhaps there’s something
more graceful.
-Mat

On Feb 27, 2007, at 12:25, Ara V. wrote:

Does anyone know of a way of performing one-time setup and teardown
per Test::Unit::TestCase?

Do it at class level and store it in a class variable or constant.

I have an integration test with an external component where,
unfortunately, mocking out a server response is not feasible. So I
need to mount a servlet to interact with my test. It would be
pointless and slow to do this once for every test method. I know
other unit testing frameworks define such callbacks. Does
Test::Unit? If not, is there a clever way of getting around it?

I don’t believe you. I’ve tested complex interactions with a stub’d
Net::HTTP. See rc_rest/uri_stub.rb and rc_rest/net_http_stub.rb.

I am using Rails’s ‘test/helper’, so I’m not instantiating my own
test harness. Obviously, I can setup any needed resources in the
class scope of the unit test itself, BUT that still doesn’t give me
a callback for teardown.

at_exit {
at_exit {
# your teardown
}
}

Eric H. schrieb:

at_exit {
at_exit {
# your teardown
}
}

Nice trick, Eric! Thanks for sharing.

Regards,
Pit

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs