Question at the end. ( i dont know exactly what i should write as the
topic)
I want to test some programs that are running on a server.
So I have a general controller class to execute programs on this server
class GeneralController
def initialize
…
some variables to connect to server and application name and so on.
Variable to hold inputs that are going to be plotted in to the given
program when it asks for inputs.
And some variables to hold stdout, stderr so they can later be tested to
seeif they are correct.
…
end
some access methods to some of the variables above
def start_program
…
it start the program from the server
..
end
and to run the program only once for each test case I have made this
class GenTest < Test::Unit::TestCase
It has some variables.
Like a variable that holds a generalController class,
@cenCon = generalController.new
And variables for inputs and the program name
@inut = “”
@app_name = “”
class << self
def startup
It sets the input variable and program name in the generalController
class
…
this starts the program in the class above
end
def shutdown
end
def suite
mysuite = super
def mysuite.run(*args)
GenTest.startup()
super
GenTest.shutdown()
end
mysuite
end
end
end
The plan is that for each test it is only needed to change this, at
least for most test. Since I have to write many test I want to write as
little as possible on each test as I can.
class TestX < GenTest
Set inputs in the input variable of the parent class
Set the program name in the parent class
(probably some more here later)
Some test assertions under here
…
end
The problem is that I dont know how to set @input and @app_name in
GenTest from the TestX class. I have tried to make def initialize
method, but that did not work (som eerrors and stuff). The only way I
managed it was to make those variables global, but then they affect all
my tests.
···
--
Posted via http://www.ruby-forum.com/.