2

初期化で 2 つの異なる引数を使用して一連のテストを実行したいと考えています。私が今していることは次のとおりです。

require 'rubygems'
gem 'test-unit'
require 'test/unit'
require 'calc'

class My_test < Test::Unit::TestCase
  class << self
    def startup
      $obj = Calc.new("test1")
    end
  end

  def test_1
    #testing $obj method 1
  end

  def test_2
    #testing $obj method 2
  end
  .
  .
  .
end

ここで、「test2」、Calc.new("test2") などの異なる引数を使用して、すべてのテスト test_1...test_n を実行したいと考えています。

それを行う最良の方法は何ですか?なにか提案を。gem test-unit 2.5.x を使用しています

4

1 に答える 1

1

モジュールに test_1... を配置して、2 つのテストクラスを作成できます。

例 (1 つのテストは成功し、2 つ目のテストにはエラーがあります):

require 'rubygems'
gem 'test-unit'
require 'test/unit'
#~ require 'calc'

module My_tests
  def test_1
    assert_equal( 2, 2*@@obj)
  end
end

class My_test1 < Test::Unit::TestCase
  class << self
    def startup
      @@obj = 1 #Calc.new("test1")
    end
  end
  include My_tests
end

class My_test2 < Test::Unit::TestCase
  class << self
    def startup
      @@obj = 2 #Calc.new("test1")
    end
  end
  include My_tests
end

グローバル変数 ( $obj) は使用せず、クラス属性 ( @@obj) を使用しました。

おそらく、より適切に使用する必要がありますsetup

require 'rubygems'
gem 'test-unit'
require 'test/unit'
#~ require 'calc'

module My_tests
  def test_1
    assert_equal( 2, 2*@obj)
  end
end

class My_test1 < Test::Unit::TestCase
  def setup
    @obj = 1 #Calc.new("test1")
  end
  include My_tests
end

class My_test2 < Test::Unit::TestCase
  def setup
    @obj = 2 #Calc.new("test1")
  end
  include My_tests
end
于 2012-09-28T22:04:51.040 に答える