Предположим, что в setup
или teardown
выполняются потенциально дорогостоящие операции, которые одинаковы для всех тестов и результаты которых не будут испорчены во время выполнения тестов.Мне кажется неправильным запускать их до / после каждого отдельного теста.
Так есть ли предпочтительный способ запуска кода установки / разрыва только перед выполнением первого теста и только после последнего теста?
Редактировать : В конкретном случае, над которым я работаю, следует протестировать некоторые расширения 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