Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Mengasingkan Unit dan Ujian Penyepaduan dengan Berkesan dalam Go?

Bagaimanakah Saya Boleh Mengasingkan Unit dan Ujian Penyepaduan dengan Berkesan dalam Go?

Barbara Streisand
Barbara Streisandasal
2024-12-25 03:28:16931semak imbas

How Can I Effectively Separate Unit and Integration Tests in Go?

Amalan Terbaik untuk Mengasingkan Unit dan Ujian Integrasi dalam Go

Pengenalan:

Untuk memisahkan ujian unit dan integrasi secara berkesan dalam Go menggunakan testimoni, adalah penting untuk mengikuti amalan terbaik yang telah ditetapkan. Ini membolehkan anda mengawal ujian yang hendak disertakan berdasarkan keperluan projek.

Penyelesaian:

Satu pendekatan biasa ialah menggunakan bendera -integrate dalam utama:

var runIntegrationTests = flag.Bool("integration", false
    , "Run the integration tests (in addition to the unit tests)")

Bendera ini boleh digunakan untuk melangkau ujian penyepaduan semasa menjalankan ujian go. Walau bagaimanapun, ia memerlukan penambahan pernyataan if secara manual pada permulaan setiap ujian penyepaduan:

if !*runIntegrationTests {
    this.T().Skip("To run this test, use: go test -integration")
}

Penyelesaian Alternatif:

Pilihan lain yang dicadangkan oleh @Ainar-G ialah untuk menggunakan teg binaan untuk memilih ujian yang hendak dijalankan:

// +build integration

// ... Integration test code ...

Pendekatan ini membolehkan anda memanggil ujian pergi -tags=integrasi untuk menjalankan ujian integrasi secara khusus. Begitu juga, anda boleh menentukan // bina !unit kepada lalai untuk menjalankan ujian integrasi dan melumpuhkannya dengan go test -tags=unit.

Pertimbangan Tambahan:

  • Apabila menggunakan teg binaan, pastikan komen // binaan ialah baris pertama dalam fail dengan baris kosong berikut itu.
  • Teg binaan tidak boleh mengandungi sengkang, jadi gunakan garis bawah (cth., // bina unit_tests dan bukannya // bina unit-tests).

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengasingkan Unit dan Ujian Penyepaduan dengan Berkesan dalam Go?. 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