2011-08-05 3 views
0

나는 Test :: Unit :: TestCase 테스트의 teardown 기능을 덮어 쓰거나 수정하려고합니다. 테스트가 끝난 후 (테스트가 끝난 후), 나는 여분의 일을하고 싶습니다. 하나의 TestCase 또는 모두레일즈 테스트 테스트 :: 유닛 :: 테스트 케이스를 덮어 씁니다

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 
+0

기호가 아니어야합니까? – Senthess

+0

'alias'는 그렇게 이상합니다. 그래서 대부분의 사람들이 그것을 사용하지 않습니다. – tadman

답변

1

당신이 그것을 원하십니까 : (계속 원래 분해를 실행)

나는이 시도했지만 작동하지 않습니다?

모든 테스트 케이스에 대한 변경이 필요한 경우 :

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 
+0

감사합니다. 잘 작동합니다! – Jochen

1

당신은 alias_method_chain를 사용하여 더 나은 결과를 찾을 수를 :

class Test::Unit::TestCase 
    def teardown_with_hacks 
    teardown_without_hacks 
    end 
    alias_method_chain :teardown, :hacks 
end 

이 자동으로 당신을 위해 물건을 많이 설정합니다.

+0

고마워요, 좋아 보인다! – Jochen