특정 경로에 파일을 만드는 다음 함수에 대한 테스트를 만들고 싶습니다.
exists, err := IsFileExists(path)
if err != nil {
return err
}
if exists {
return errors.New("File already exists")
}
file, err := os.Create(path)
defer file.Close()
return err
JUnit에는 다음과 같이 테스트에 필요한 파일 및 디렉토리 구조를 설정하는 데 도움이 되는 TemporaryFolder
규칙 이 있습니다.
public class DummyFileClassTest {
@Rule
public TemporaryFolder folder = new TemporaryFolder();
@Test
public void someMethod() {
// given
final File file1 = folder.newFile("myfile1.txt");
final File file2 = folder.newFile("myfile2.txt");
... etc...
}
}
Go에 비슷한 것이 있습니까? 아니면 더 나은 접근 방식?
testing은 TempDir 를 제공 하여 각 테스트 후에 정리 될 테스트 디렉터리를 가져옵니다.
import(
"testing"
"path"
)
func TestConvert(t *testing.T) {
tmpdir := t.TempDir()
...
// tmpdir will be cleaned up
}
그런 다음 path.Join(tmpdir, "test.file")
임시 디렉토리에서 특정 이름으로 파일 ioutil.TempFile(tmpdir, "*")
을 만들거나 임의의 이름 을 만들 수 있습니다.
함수에 경쟁 조건이 포함되어 있습니다 . 두 프로세스가 동시에 파일을 확인하면 둘 다 파일이 존재하지 않는다고 판단하고 둘 다 파일을 생성하려고합니다. 하나는 파일을 만들고 다른 하나는 파일을 자릅니다. 이것은 "확인 후 수행"입니다.
대신 파일을 만든 다음 오류를 확인하십시오. "다음 확인".
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다