fstest

package
v1.23.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 14, 2024 License: MIT Imports: 2 Imported by: 0

Documentation

Overview

fstestパッケージは、ファイルシステムの実装およびユーザーのテストをサポートする機能を実装します。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func TestFS

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)
}

Types

type MapFS

type MapFS map[string]*MapFile

MapFSは、テストで使用するためのシンプルなメモリ内ファイルシステムであり、 パス名(Openへの引数)からそれらが表すファイルやディレクトリの情報へのマップとして表されます。

マップには、マップに含まれるファイルの親ディレクトリを含める必要はありません。 必要に応じてそれらは合成されます。 しかし、[MapFile.Mode] の fs.ModeDir ビットを設定することで、ディレクトリをまだ含めることができます。 これは、ディレクトリの fs.FileInfo に対する詳細な制御が必要であるか、 空のディレクトリを作成するために必要かもしれません。

ファイルシステムの操作は、マップから直接読み取るため、 必要に応じてマップを編集することでファイルシステムを変更できます。 その意味するところは、ファイルシステムの操作はマップの変更と同時に実行してはならず、 それはレース条件を引き起こす可能性があるということです。 別の意味するところは、ディレクトリのオープンや読み取りには、 マップ全体を反復処理する必要があるため、MapFSは通常、 数百エントリ以上またはディレクトリの読み取りを使用しないで使用する必要があります。

func (MapFS) Glob

func (fsys MapFS) Glob(pattern string) ([]string, error)

func (MapFS) Open

func (fsys MapFS) Open(name string) (fs.File, error)

Openは、指定された名前のファイルを開きます。

func (MapFS) ReadDir

func (fsys MapFS) ReadDir(name string) ([]fs.DirEntry, error)

func (MapFS) ReadFile

func (fsys MapFS) ReadFile(name string) ([]byte, error)

func (MapFS) Stat

func (fsys MapFS) Stat(name string) (fs.FileInfo, error)

func (MapFS) Sub

func (fsys MapFS) Sub(dir string) (fs.FS, error)

type MapFile

type MapFile struct {
	Data    []byte
	Mode    fs.FileMode
	ModTime time.Time
	Sys     any
}

MapFileは、MapFS 内の単一のファイルを説明します。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL