Exemple de code pour tester le système de fichiers dans Golang
Le système de fichiers est un composant essentiel de toute application qui gère des données basées sur des fichiers. Pour garantir le bon comportement des opérations du système de fichiers, les tests unitaires jouent un rôle crucial. Golang fournit un mécanisme pour simuler le système de fichiers pendant les tests, permettant aux développeurs d'isoler le comportement de leur code du système de fichiers réel.
Pour simuler le système de fichiers, vous pouvez créer une interface qui représente les opérations du système de fichiers. Cette interface peut ensuite être implémentée par un système de fichiers fictif qui renvoie des réponses contrôlées lors des tests.
Voici un exemple d'une telle interface :
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) }
Pour utiliser cette interface dans un test, vous peut créer un système de fichiers fictif qui implémente l'interface fileSystem :
type mockFileSystem struct { err error fileInfo os.FileInfo } func (m mockFileSystem) Open(name string) (file, error) { return nil, m.err } func (m mockFileSystem) Stat(name string) (os.FileInfo, error) { return m.fileInfo, m.err }
Ce système de fichiers fictif peut être utilisé pour contrôler le comportement du système de fichiers pendant les tests en définissant l'erreur et fileInfo.
Voici un exemple de fonction de test qui utilise le système de fichiers fictif :
func TestGetSize(t *testing.T) { oldFs := fs defer func() { fs = oldFs }() fs = mockFileSystem{fileInfo: &os.FileInfo{Size: 123}} size, err := getSize("hello.go") if err != nil { t.Errorf("Expected no error, got: %v", err) } if size != 123 { t.Errorf("Expected size %d, got: %d", 123, size) } }
Dans la fonction de test, le système de fichiers d'origine est enregistré et remplacé par le fichier fictif. système. Le système de fichiers fictif est configuré pour renvoyer un fichier d'une taille de 123. Le test appelle ensuite la fonction getSize, qui est censée renvoyer la taille du fichier. Le test réussit si la fonction getSize renvoie la bonne taille et aucune erreur.
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!