Forum: Ruby How can I use the "test/unit"

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.
Artoxvw A. (Guest)
on 2009-05-14 17:16
when I run the following code

require 'test/unit'
class TC_Pram < Test::Unit::TestCase
 def initialize(name)
   @name=name
 end
 def test_array
    puts assert_equal(2,@name[2])
 end
end
tc=TC_Pram.new("wang")
tc.test_array

there are some errors as follows

c:/ruby/lib/ruby/1.8/test/unit/testcase.rb:125:in `add_assertion':
undefined method `add_assertion' for nil:NilClass (NoMethodError)
 from c:/ruby/lib/ruby/1.8/test/unit/assertions.rb:494:in
`_wrap_assertion'
 from c:/ruby/lib/ruby/1.8/test/unit/assertions.rb:46:in
`assert_block'
 from c:/ruby/lib/ruby/1.8/test/unit/assertions.rb:83:in
`assert_equal'
 from test_unit.rb:7:in `test_array'
 from test_unit.rb:11

I don't know how to resolve it , so I need  your help , thanks
Daniel B. (Guest)
on 2009-05-14 17:46
(Received via mailing list)
>  def initialize(name)
>    @name=name
>  end
>  def test_array
>     puts assert_equal(2,@name[2])
>  end
> end
> tc=TC_Pram.new("wang")
> tc.test_array

You don't want to use initialize. You want to use setup.

class TC_Pram < Test::Unit::TestCase
   def setup
      @name = 'wang'
   end

   def test_array
      assert_equal(2, @name[2])
   end
end

You don't need to instantiate an instance of TC_Pram. Just run the file.

Regards,

Dan
This topic is locked and can not be replied to.