I noticed that removing the initialize method allows the tests to run.
Is there something in test /unit that requires an initialize
definition to have a certain interface?

-Justin

On 3/23/06, Mark Volkmann <r.mark.volkmann / gmail.com> wrote:
> On 3/23/06, David Solis <dsolis / yahoo.com> wrote:
> > Hello,
> >
> > I'm having difficulty understanding inheritance in this case. In the
> > program below, I'm inheriting from <Test::Unit::TestCase. I also want my
> > other class in this program to inherit from <Test::Unit::TestCase.
>
> There's no problem with having multiple classes in the same source
> file inherit from some other class.
>
> > My
> > goal is to be able to make assertions in both classes.
> >
> > If a run the program as written below, it works.
> >
> > require 'test/unit'
> > require 'test/unit/ui/console/testrunner'
> >
> > class TC_MyTest < Test::Unit::TestCase
> >   def test_myMethod
> >     puts 'test 1'
> >       assert(true, 'test 1')
> >     @test = TC_MyClass.new()
> >     @test_new = @test.test_myTestCase
> >   end
> > End
> >
> > class TC_MyClass
> >   def initialize
> >   end
> >   def test_myTestCase
> >     puts 'test 2'
> >       #assert(true, 'test 2')
> >     puts 'test 3'
> >     puts 'test 4'
> >   end
> > end
> >
> > But if try to do this, I get an error:
> >
> > class TC_MyTest < Test::Unit::TestCase
> >   def test_myMethod
> >     puts 'test 1'
> >       assert(true, 'test 1')
> >     @test = TC_MyClass.new()
> >     @test_new = @test.test_myTestCase
> >   end
> > End
> >
> > class TC_MyClass < Test::Unit::TestCase
> >   def initialize
> >   end
> >   def test_myTestCase
> >     puts 'test 2'
> >       assert(true, 'test 2')
> >     puts 'test 3'
> >     puts 'test 4'
> >   end
> > end
> > ---------------------
> > c:/ruby/lib/ruby/1.8/test/unit/testcase.rb:51:in `initialize': wrong
> > number of arguments (1 for 0) (ArgumentError)
>
> You don't need the initialize method in TC_MyClass. Delete that and
> see if it works.
>
> There's still something strange going on here though. Why do you want
> to put asserts in the class being tested? Normally all the asserts go
> in the class doing the testing. Also, normally the classes being
> tested and the test classes are in separate source files.
>
> --
> R. Mark Volkmann
> Object Computing, Inc.
>
>