setup
또는 teardown
에서 수행해야 할 값 비싼 작업이 모든 테스트에서 동일하며 테스트 실행 중에 결과가 엉망이되지 않는다고 가정하십시오. 모든 단일 테스트 전후에 실행되도록하는 것이 나에게 적절하지 않은 것 같습니다.루비의 Test :: Unit :: TestCase에서 모든 테스트에 대한 공통 설정 및 티아 다운 로직을 정의하는 방법?
첫 번째 테스트가 실행되기 전에 그리고 마지막 테스트가 실행 된 후에 만 setup/teardown 코드를 실행하는 것이 더 좋습니다.
편집 : 앤드류
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
설치 코드의 기능에 따라 다릅니다. 데이터베이스에 물건을 추가하면, 조명기/공장이가는 길입니다. 적어도 하나의 예는 당신이 취하는 조치에 대해보다 구체적으로 설명해야합니다. 테스트가 실제 범위 밖에서 (예 : 외부 API에 대한 연결 설정) 수행하고있을 가능성도 있으며, 비슷한 경우에는 모의 객체, 스텁 등을 사용하여 테스트해야합니다. 그건 당신이 실제로 테스트하고있는 바깥에 있습니다. – jefflunt
@normalocity 특정 시나리오에 대한 정보를 추가했습니다. 그럼에도 불구하고 일반적인 설정과 같은 것이 훨씬 더 편리 할 수있는 여러 가지 시나리오를 상상할 수 있습니다. 조명기, 공장, mock 및 스텁에 관해서 :이 주제에 대한 링크가있어서 도움이 될 것입니다. ^^ – raphinesse
나는이 질문이 이전에 제기 된 것 같아요. "testunit"이라는 질문을 검색하여 찾을 수 있습니다. –