In article <20030401183531.GK24880 / atdesk.com>, Paul Brannan <pbrannan / atdesk.com> wrote: >I don't know if I've asked this on this list before or only on irc (I >can't find an earlier post on the subject, so I appologize if I'm asking >this a second time; I don't remember the answer). > >I have a number of tests that create some object. The tests are not >unit tests, but I am using a unit test framework (RUNIT or Test::Unit) >to write the tests. This object is expensive (time-wise) to create, and >I would like to share the object between my tests. If I write this: > > class MyTest < Test::Unit::TestCase > def setup > @f = Foo.new > end > > def test_1 > end > > def test_2 > end > end > >then @f gets constructed twice; once for each instance of MyTest. > >I'm currently doing this instead: > > $f = Foo.new > > class MyTest < Test::Unit::TestCase > def setup > @f = $f > end > > def test_1 > end > > def test_2 > end > end > >but surely there has to be a better way! What can I do? > What if you make it a class variable instead? Something like: class MyTest < Test::Unit::TestCase @@f = Foo.new def test1 ... do stuff with @@f end def test2 ... do stuff with @@f end end Phil