Перезапись Rails Test Test :: Unit :: TestCase - PullRequest
0 голосов
/ 06 августа 2011

Я пытаюсь перезаписать / изменить функцию разрыва теста Test :: Unit :: 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

Ответы [ 2 ]

1 голос
/ 06 августа 2011

Возможно, вы обнаружите, что использование alias_method_chain дает лучшие результаты:

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

Это автоматически настраивает многие вещи для вас.

1 голос
/ 06 августа 2011

Хотите ли вы его в одном TestCase или во всех?

Если вам нужно изменить все тестовые случаи:

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
...