假设在所有测试中都需要执行一些潜在的昂贵操作,这些操作在
那么是否有一种首选方法可以仅在第一个测试执行之前和最后一个测试运行后运行设置/拆卸代码呢? 编辑:我正在处理的特定情况应该测试一些针对 Net::FTP 的扩展,并因此建立 FTP 连接并设置一些用于测试的远程对象。
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