Ross Bamford
3/23/2006 8:43:00 PM
On Fri, 2006-03-24 at 05:28 +0900, rtilley wrote:
> I can't get test/unit to work with command line scripts that take user
> input via ARGV. Any tips on this? I continually get 'initialize': wrong
> number of arguments (0 for 1) (ArgumentError) that go back to my
> initialize method which is simply this:
>
> def initialize
> super
> end
(I assume this is in a testcase class?)
Test::Unit::TestCase#initialize requires one argument, the name of the
test being run. For each test method, a new instance is used. You would
need to do:
def initialize(name)
super(name)
end
You could omit (name) from the super call (it assumes the same arguments
anyway) but I prefer to be explicit.
All that said, you should generally handle custom initialization for
your tests from the 'setup' method, which is called before each test is
run.
As a general tip, whenever you have a situation like this you can
temporarily do:
def initialize(*args)
p args
super(*args)
end
To see what you're supposed to be dealing with.
--
Ross Bamford - rosco@roscopeco.REMOVE.co.uk