2016-06-01 5 views
1

테스트 방법을 사용하면 데이터가 포함 된 추가 파일에 path을 추가 할 수 있습니다.단위 테스트에 사용할 임시 파일을 생성하는 방법은 무엇입니까?

예를 들어, data.txt이라는 파일을 /workspace/data 디렉토리에 저장할 수 있습니다. 이 디렉토리의 경로를 DATA_PATH이라는 기존의 배열에 추가하려고합니다.

방법 : path는 사용자가 파일을 저장하는 레일 응용 프로그램의 위치

def add_custom_path(path) 
    DATA_PATH.unshift(path) 
end 

.

보석은 test-unit을 사용합니다.

질문 :

temparily 파일이 사라가 다음 assert_not_empty 테스트를 실행, 어떤 디렉토리에 파일을 생성하고, 할 수있는 방법이 있나요?

나는 보석에 대한 시험을 쓰는 데 경험이 없기 때문에 어떤 지침을 주시면 감사하겠습니다.

답변

1

The .create and .new methods of Ruby's Tempfile take a second argument which is the directory you want the file to be in으로 생성되고 Tempfile으로 생성 된 파일은 임시 파일의 File 개체가 가비지 수집되거나 Ruby가 종료 될 때 자동으로 삭제됩니다. 그래서 당신은 그것을,

tempfile = Tempfile.new('filename', 'directoryname') 

쓰기 임시 파일을 만들어 테스트를하고 루비는 당신을 위해 그것을 정리하도록 할 수 있습니다.

첫 번째 인수는 파일의 정규화되지 않은 전체 이름이 아니며 Tempfile이 모호하지 않은 문자를 추가하는 부분이므로 테스트 스위트에서 두 번 이상 안전하게 수행 할 수 있습니다.

또한 특정 접미사가있는 파일이 필요한 경우 예를 들어 다음과 같이 할 수 있습니다.

tempfile = Tempfile.new(['filename', '.rb'], 'directoryname')