我想在初始化中运行一组带有两个不同参数的测试。 我现在正在做的是:
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
现在我想执行所有测试test_1 ... test_n用不同的参数说'test2',Calc.new(“test2”)。
最好的方法是什么?任何建议。 我正在使用gem test-unit 2.5.x
答案 0 :(得分:1)
您可以将test_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