Mocking/Abstracting Filesystem in Go
Exigence :
L'objectif est de surveiller toutes les lectures du système de fichiers et écrit dans une application Go et remplace potentiellement le système de fichiers physique par un système de fichiers en mémoire alternative.
Solution :
Andrew Gerrand, le créateur de Go, propose une solution simple mais efficace :
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) }
Pour utiliser cette solution :
Votre code d'application doit utiliser la variable fs comme l'interface du système de fichiers au lieu d'utiliser directement le package os. Cela vous permet de facilement simuler ou remplacer le système de fichiers selon vos besoins.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!