Bagaimana untuk berkongsi kaedah persediaan dan teardown merentas pakej semasa menguji Go?

王林
Lepaskan: 2024-02-15 09:50:07
ke hadapan
1038 orang telah melayarinya

在测试 Go 时如何跨包共享设置和拆卸方法?

Perkongsian kaedah persediaan dan teardown merentas pakej adalah masalah biasa semasa menguji Go. Editor PHP Yuzai akan menjawab soalan ini untuk anda. Dalam bahasa Go, anda boleh menggunakan pakej `flag` untuk menetapkan dan mendapatkan parameter baris arahan. Dengan menggunakan fungsi `flag.Parse()` dalam fail ujian, parameter baris arahan boleh dihuraikan dan ditetapkan ke dalam pembolehubah yang sepadan. Untuk senario ujian yang memerlukan tetapan dikongsi, pembolehubah global boleh ditetapkan dalam fail ujian dan digunakan dalam setiap fungsi ujian. Apabila ujian selesai, anda boleh membukanya dalam fungsi `TestMain` dan memulihkan keadaan tetapan asal. Ini membolehkan kaedah persediaan dan teardown dikongsi merentas pakej.

Isi soalan

Andaikan saya ada dua pakej foobar. Setiap pakej mempunyai fail dan fail ujian:

foo
---widget.go
---widget_test.go
bar
---wingding.go
---wingding_test.go
Salin selepas log masuk

Sekarang untuk dua ujian ini (widget_test.go dan wingding_test.go) saya ingin berkongsi beberapa kod persediaan. Saya tahu saya boleh meletakkan kod ini ke dalam setiap pakej di dalam main_test.go. Tetapi saya jelas tidak mahu menyalin / menampal kod di dua tempat. Jadi di manakah saya boleh meletakkan kod ini supaya ia boleh dikongsi antara pakej?

Penyelesaian

Masukkan ke dalam foobar 在测试中导入的另一个包 baz pakej lain baz yang diimport dalam ujian. Kami menggunakan ini untuk persediaan pangkalan data dan kod teardown dalam ujian kami.

Atas ialah kandungan terperinci Bagaimana untuk berkongsi kaedah persediaan dan teardown merentas pakej semasa menguji Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:stackoverflow.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan