Spec-Zone.ru › Go

Пакет fstest

  • import "testing/fstest"
  • Обзор
  • Индекс

Обзор

Пакет fstest реализует поддержку тестирования реализаций и пользователей файловых систем.

Индекс

  • func TestFS(fsys fs.FS, expected ...string) error
  • тип MapFS
  • func (fsys MapFS) Glob(pattern string) ([]string, error)
  • func (fsys MapFS) Open(name string) (fs.File, error)
  • func (fsys MapFS) ReadDir(name string) ([]fs.DirEntry, error)
  • func (fsys MapFS) ReadFile(name string) ([]byte, error)
  • func (fsys MapFS) Stat(name string) (fs.FileInfo, error)
  • func (fsys MapFS) Sub(dir string) (fs.FS, error)
  • тип MapFile

Файлы пакета

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/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API