我正在用红宝石编写一些测试并提出这个问题。
class MyTest < Test::Unit::TestCase
LogFile = "test.log"
Log= Logger.new(LogFile)
def startup
@log = Log
end
def shutdown
end
def setup
end
....
end
我正在尝试在启动时创建一个记录器,但是,它不能正常工作。在测试用例中,@ log为零。 我知道我可以把它放在设置中,但是,我不想为每个测试用例重新分配它。为什么它不起作用?这样做的正确方法是什么?
答案 0 :(得分:0)
startup
应该用作类方法。在那里你可以定义一个类变量,如@@log
。
如果您想使用实例变量@log
,则必须将其填入setup
。
示例:
require 'test/unit'
require 'logger'
class MyTest < Test::Unit::TestCase
LogFile = "test.log"
Log= Logger.new(LogFile)
def self.startup
@@log = Log
end
def setup
@log = Log
end
def test_class_var
assert_kind_of(Logger,@@log)
end
def test_instance_var
assert_kind_of(Logger,@log)
end
end