Как определить общую логику настройки и разрыва для всех тестов в Test :: Unit :: TestCase в ruby?

Предположим, что в настройке или разборке необходимо выполнить потенциально дорогостоящие операции, которые одинаковы для всех тестов и результаты которых не получают испортились во время тестовых прогонов. Мне кажется неправильным запускать их до / после каждого теста.

Так есть ли предпочтительный способ запуска кода установки / разрыва только до выполнения первого теста и только после запуска последнего теста?

Изменить : В конкретном случае, над которым я работаю, следует проверить некоторые расширения к Net :: FTP и, таким образом, устанавливает FTP-соединение и настраивает некоторые удаленные объекты для тестирования:

class TestFTPExtensions < Test::Unit::TestCase
  def setup
    # Setup connection
    @ftp = Net::FTP.new 'localhost', 'anonymous'
    @ftp.passive = true

    # Create remote test directory
    @ftp.mkdir 'dir'

    # Create remote test file
    path = File.join Dir.tmpdir, 'file'
    File.open path, 'w' do |f|
      @ftp.put f
    end
    File.delete path
  end

  def teardown
    @ftp.rmdir 'dir'
    @ftp.delete 'file'
    @ftp.close
  end

  # imagine some tests here that don't change/remove any remote objects

end
5
задан Andrew Grimm 2 February 2012 в 23:54
поделиться