Question

I have an assortment of test cases that I want to run. The dumbed-down code is like this:

class TestCase
    def initialize(caseName)
        name = caseName
        ...a bunch more code...
    end
end    

@TC001 = new TestCase("Case 1")
@TC002 = new TestCase("Case 2")
...
@TC100 = new TestCase("Case 100")

Then I'm trying to pass in to the command line which test cases I need to run this time. The Runner file looks something like:

testCaseArray = Array.new
i = 0
while i < ARGV.length
    testCaseArray < ARGV[i]
    i += 1
end

runTestCases(myArray)
    myArray.each do |thisCase|
        puts thisCase.name
     end
end

runTestCases(testCaseArray)

So then when I go to the command line and enter:

ruby Runner.rb @TC027 @TC030 @TC075

I get an error because it's not recognizing @TC027 as a variable but is instead recognizing it as a string, and (string).name isn't valid.

How do I get it to read the string as a variable?

Was it helpful?

Solution

You can look up an instance variable named by a string with instance_variable_get.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top