我正在尝试覆盖/修改Test::Unit::TestCase测试的teardown函数。在测试的拆卸过程中(在测试结束后),我想做一些额外的事情。
我试过了,但它不起作用(继续执行原始的teardown):
module Test
module Unit
class TestCase
def teardown_modified
# do modifications
teardown_original
end
alias teardown_original teardown
alias teardown teardown_modified
end
end
end发布于 2011-08-06 05:04:23
你想把它放在一个TestCase里还是放在所有地方?
如果您需要更改所有TestCases:
gem 'test-unit'
require 'test/unit'
module Test
module Unit
module Fixture
alias :run_teardown_old :run_teardown
def run_teardown
# do modifications
puts "In modified teardown"
run_teardown_old
end #def run_teardown
end #module Fixture
end #module Unit
end #module Test
class MyTest < Test::Unit::TestCase
def teardown
puts "In teardown"
end
def test_4()
assert_equal(2,1+1)
end
end发布于 2011-08-06 05:06:06
您可能会发现使用alias_method_chain会产生更好的结果:
class Test::Unit::TestCase
def teardown_with_hacks
teardown_without_hacks
end
alias_method_chain :teardown, :hacks
end这会自动为你设置很多东西。
https://stackoverflow.com/questions/6962265
复制相似问题