Hi, I have 8 class that need to be tested. They all have some same
method to be tested. So I make parent class to do the duplicate work.

This is the parent class:

class BaseElementControllerTest < Test::Unit::TestCase

  def setup
    # notice this line
    @controller = @con_name.new
    # end of notice this line

    @request    = ActionController::TestRequest.new
    @response   = ActionController::TestResponse.new
  end

  def test_new
    get :new
    assert_response :success
  end

end

The 8 class have same method that need to be tested, that is test_new.
The child class is like this:

require File.dirname(__FILE__) + '/../test_helper'
require 'thermo_detector_controller'

# Re-raise errors caught by the controller.
class ThermoDetectorController; def rescue_action(e) raise e end; end

# notice this line
@con_name = ThermoDetectorController
# end of notice this line

class ThermoDetectorControllerTest < BaseElementControllerTest
  fixtures :thermo_detector_order_letters, :workers

  # specific method to be tested
  ....
end

Another child class:

require File.dirname(__FILE__) + '/../test_helper'
require 'quartz_heater_controller'

# Re-raise errors caught by the controller.
class QuartzHeaterController; def rescue_action(e) raise e end; end

# notice this line
@con_name = QuartzHeaterController
# end of notice this line

class QuartzHeaterControllerTest < BaseElementControllerTest
  fixtures :quartz_heater_order_letters, :workers

  # specific method to be tested
  ....
end

In this case, I send message to parent class using @con_name variable,
instantiated before child class definition. I have to send message
because in parent class, @controller variable must be instantiated
according to child class. So I wonder if there is another way to send
message to parent in unit testing? I try to use initialize method, but
unit testing "forbid" it. Or this is the only way to send message to
parent class in unit testing?

Thank you.