Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Abstrak dan Olok-olok Sistem Fail dalam Pergi untuk Pengujian dan Pembalakan?

Bagaimana untuk Abstrak dan Olok-olok Sistem Fail dalam Pergi untuk Pengujian dan Pembalakan?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-11 03:11:10549semak imbas

How to Abstract and Mock the Filesystem in Go for Testing and Logging?

Cara Mengabstrak dan Mengejek Sistem Fail dalam Go

Untuk pengelogan komprehensif operasi baca dan tulis dalam aplikasi Go anda, atau penggantian lengkap daripada sistem fail dengan alternatif dalam memori, anda boleh memanfaatkan perkara berikut teknik:

Abstraksi

Untuk mengabstraksikan sistem fail, tentukan antara muka yang mewakili operasi terasnya:

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

Pelaksanaan osFS bagi failSystem berfungsi dengan orang tempatan cakera:

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

Penggunaan

Untuk menggunakan sistem fail yang diabstrak, hantarkan contoh Sistem fail kepada kod anda:

func MyFunc(fs fileSystem) {
    // Use the fs instance for file operations
}

Mengejek

Untuk mengejek sistem fail, laksanakan antara muka sistem fail dengan pelaksanaan tersuai yang menyediakan gelagat terkawal untuk ujian atau pengelogan:

type MockFileSystem struct {
    openCalled   int
    openArgs     []string
    statCalled   int
    statArgs     []string
}

func (m *MockFileSystem) Open(name string) (file, error) {
    m.openCalled++
    m.openArgs = append(m.openArgs, name)
    return nil, nil
}

func (m *MockFileSystem) Stat(name string) (os.FileInfo, error) {
    m.statCalled++
    m.statArgs = append(m.statArgs, name)
    return nil, nil
}

Dengan menghantar MockFileSystem kepada kod anda, anda boleh mengesahkan dan mengawal operasi sistem fail yang digunakan semasa ujian.

Atas ialah kandungan terperinci Bagaimana untuk Abstrak dan Olok-olok Sistem Fail dalam Pergi untuk Pengujian dan Pembalakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn