How do I inherit abstract unit tests in Ruby?

Posted by Graeme Moss on Stack Overflow See other posts from Stack Overflow or by Graeme Moss
Published on 2010-04-01T22:19:06Z Indexed on 2010/04/01 22:23 UTC
Read the original article Hit count: 128

Filed under:
|
|

I have two unit tests that should share a lot of common tests with slightly different setup methods. If I write something like

class Abstract < Test::Unit::TestCase
  def setup
    @field = create
  end

  def test_1
    ...
  end
end

class Concrete1 < Abstract
  def create
    SomeClass1.new
  end
end

class Concrete2 < Abstract
  def create
    SomeClass2.new
  end
end

then Concrete1 does not seem to inherit the tests from Abstract. Or at least I cannot get them to run in eclipse. If I choose "Run all TestCases" for the file that contains Concrete1 then Abstract is run even though I do not want it to be. If I specify Concrete1 then it does not run any tests at all! If I specify test_1 in Concrete1 then it complains it cannot find it ("uncaught throw :invalid_test (ArgumentError)").

I'm new to Ruby. What am I missing here?

© Stack Overflow or respective owner

Related posts about ruby

Related posts about unit-testing