Пакет fstest
Обзор
Пакет fstest реализует поддержку тестирования реализаций и пользователей файловых систем.
Индекс
Файлы пакета
mapfs.go testfs.go
func TestFS 1.16
func TestFS(fsys fs.FS, expected ...string) error
TestFS тестирует реализацию файловой системы. Он обходит всю иерархию файлов в fsys, открывает и проверяет, что каждый файл ведет себя правильно. Он также проверяет, что файловая система содержит, по меньшей мере, ожидаемые файлы. В качестве специального случая, если список ожидаемых файлов пуст, fsys должна быть пустой. В противном случае fsys должна содержать, по меньшей мере, перечисленные файлы; она также может содержать другие. Содержимое fsys не должно изменяться одновременно с TestFS.
Если TestFS обнаруживает какие-либо неисправности, он возвращает либо первую ошибку, либо список ошибок. Используйте errors.Is или errors.As для проверки.
Типичное использование внутри теста:
if err := fstest.TestFS(myFS, "file/that/should/be/present"); err != nil {
t.Fatal(err)
}
тип MapFS 1.16
MapFS — это простая файловая система в памяти для использования в тестах, представленная как отображение имен путей (аргументов для Open) на информацию о файлах или каталогах, которые они представляют.
В отображении не обязательно должны быть родительские каталоги для файлов, содержащихся в отображении; они будут синтезированы при необходимости. Однако каталог по-прежнему может быть включён, установив бит fs.ModeDir в [MapFile.Mode]; это может быть необходимо для детального управления fs.FileInfo каталога или для создания пустого каталога.
Операции с файловой системой считывают данные непосредственно из отображения, поэтому файловая система может быть изменена путём редактирования отображения по мере необходимости. Следствие: операции с файловой системой не должны выполняться одновременно с изменениями в отображении, что создаст гонку. Ещё одно следствие: открытие или чтение каталога требует итерации по всему отображению, поэтому MapFS, как правило, следует использовать с не более чем несколькими сотнями записей или чтений каталогов.
type MapFS map[string]*MapFile
func (MapFS) Glob 1.16
func (fsys MapFS) Glob(pattern string) ([]string, error)
func (MapFS) Open 1.16
func (fsys MapFS) Open(name string) (fs.File, error)
Open открывает указанный файл.
func (MapFS) ReadDir 1.16
func (fsys MapFS) ReadDir(name string) ([]fs.DirEntry, error)
func (MapFS) ReadFile 1.16
func (fsys MapFS) ReadFile(name string) ([]byte, error)
func (MapFS) Stat 1.16
func (fsys MapFS) Stat(name string) (fs.FileInfo, error)
func (MapFS) Sub 1.16
func (fsys MapFS) Sub(dir string) (fs.FS, error)
тип MapFile 1.16
MapFile описывает отдельный файл в MapFS.
type MapFile struct {
Data []byte // file content
Mode fs.FileMode // fs.FileInfo.Mode
ModTime time.Time // fs.FileInfo.ModTime
Sys any // fs.FileInfo.Sys
}
© Google, Inc.
Licensed under the Creative Commons Attribution License 3.0.
http://golang.org/pkg/testing/fstest/