From: Morton Goldberg Date: 2008-01-03T11:53:02+09:00 Subject: Re: Dynamically add a method to a TestCase On Jan 2, 2008, at 1:55 PM, Achim Domma wrote: > Hi, > > I'm experimenting with the dynamic features of ruby to add methods to > a TestCase. Here is my test script: > > require 'watir' > require 'test/unit' > > class MyTest < Test::Unit::TestCase > end > > for num in ["a","b","c"] > MyTest.send(:define_method,"test_" + num) { > assert(false,"->"+num) > } > end > > It works fine so far, but all asserts display "->c" as error message. > I don't understand why! Any hint? How to fix it? One way to fix it is to use eval rather then send: require 'test/unit' class MyTest < Test::Unit::TestCase for ch in %w[a b c] eval %[define_method("test_#{ch}") { assert(false, "->#{ch}") }] end end Regards, Morton