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
Lepaskan: 2024-12-11 03:11:10
asal
590 orang telah melayarinya

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)
}
Salin selepas log masuk

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) }
Salin selepas log masuk

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
}
Salin selepas log masuk

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
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan