Go에서 파일 시스템 모의/추상화
요구 사항:
목표는 모든 파일 시스템 읽기를 모니터링하는 것입니다. Go 애플리케이션에 쓰고 잠재적으로 물리적 파일 시스템을 인메모리로 교체합니다. 대안.
솔루션:
Go의 창시자인 Andrew Gerrand는 간단하면서도 효과적인 솔루션을 제공합니다.
var fs fileSystem = osFS{} type fileSystem interface { Open(name string) (file, error) Stat(name string) (os.FileInfo, error) } type file interface { io.Closer io.Reader io.ReaderAt io.Seeker Stat() (os.FileInfo, error) } // osFS implements fileSystem using the local disk. type osFS struct{} func (osFS) Open(name string) (file, error) { return os.Open(name) } func (osFS) Stat(name string) (os.FileInfo, error) { return os.Stat(name) }
이 솔루션을 사용하려면:
애플리케이션 코드는 os 패키지를 직접 사용하는 대신 fs 변수를 파일 시스템 인터페이스로 사용해야 합니다. 이를 통해 필요에 따라 파일 시스템을 쉽게 모의하거나 교체할 수 있습니다.
위 내용은 테스트와 유연성을 위해 Go에서 파일 시스템을 어떻게 모의하거나 추상화할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!