Hello Robert,
In message "[ruby-talk:9024] Re: using RUnit's setup and teardown methods"
on 01/01/10, Robert Feldt <feldt / ce.chalmers.se> writes:
> > You also use setup methods to do things like tidy up external
> > resources (databases, files and the like).
> >
> I think I read somewhere that there is a good reason why a unit testing
> framework shouldn't have setup_once and teardown_once for tidying up
> external resources but I fail to remember the reason. Anyone knows the
> reason? If not why dont we add setup_once to RubyUnit?
I don't know the reason why testing framework shouldn't
have setup_once and teardown_once and I want to know, too.
But I know the reason why RubyUnit has no these methods.
Because JUnit has no these methods.
(I referenced JUnit when I implemented RubyUnit.)
And RubyUnit has RUNIT::Ext::TestSetup module like as JUnit.
This module provides the same functionality as setup_once and
teardown_once.
require 'runit/testcase'
require 'runit/cui/testrunner'
require 'runit/ext/testsetup'
class TestFoo < RUNIT::TestCase
def setup
puts "\nTestFoo#setup"
end
def test_a
puts "running TestFoo#test_a"
end
def test_b
puts "running TestFoo#test_b"
end
def teardown
puts "\nTestFoo#teardown"
end
end
class OnceSetupTeardown
include RUNIT::EXT::TestSetup
def setup
puts "\nOnceSetupTeardown#setup"
end
def teardown
puts "\nOnceSetupTeardown#teardown"
end
end
RUNIT::CUI::TestRunner.quiet_mode = true
RUNIT::CUI::TestRunner.run(OnceSetupTeardown.new(TestFoo.suite))
But I think TestSetup module is not convenient because
OnceSetupTeardown#setup(teardown) can not share (or access)
TestFoo instance variable(test fixture).
Thank you.
Masaki Suketa <CQN02273 / nifty.ne.jp>