Rumah  >  Artikel  >  pembangunan bahagian belakang  >  ## Bagaimana Mencapai Liputan 100% dalam Ujian Fungsian Walaupun Bintik Buta?

## Bagaimana Mencapai Liputan 100% dalam Ujian Fungsian Walaupun Bintik Buta?

DDD
DDDasal
2024-10-25 08:14:02977semak imbas

## How to Achieve 100% Coverage in Functional Tests Despite Blind Spots?

Menunjukkan Liputan Ujian Fungsian Tanpa Bintik Buta

Masalah

Dalam kod yang disediakan, kaedah keluar termasuk syarat yang mengecualikan os.Keluar (kod) baris daripada hasil liputan. Ini mewujudkan titik buta dalam laporan liputan, kerana garisan dilaksanakan tetapi tidak ditunjukkan sebagai hijau.

Penyelesaian

Terdapat dua pendekatan utama untuk menangani isu ini:

Menggunakan TestMain:

  • Ekstrak fungsi aplikasi ke dalam kelas berasingan untuk ujian, mengelakkan fungsi utama.
  • Gunakan fungsi TestMain dalam rangka kerja ujian untuk mengawal pelaksanaan kod pada urutan utama.

Memfaktorkan Semula Kod:

  • Alih keluar syarat if daripada kaedah keluar dan gunakan mekanisme lain (cth. , urutan berasingan atau proses pengawas) untuk menamatkan proses selepas profil liputan ditulis.
  • Kecualikan fail main.go daripada ujian menggunakan teg binaan (cth., // build !test). Pendekatan ini disyorkan jika fungsi utama adalah mudah dan tidak memerlukan ujian.

Contoh Pelaksanaan

Berikut ialah versi kod yang dikemas kini menggunakan teg binaan:

<code class="go">//+build !test

package main

import "os"

func main() {
    os.Exit(doFunc())
}</code>

Kod yang diubah suai ini akan dikecualikan daripada laporan liputan, membolehkan anda mewakili liputan ujian fungsi anda dengan tepat.

Menjalankan Ujian

Bina perduaan liputan dengan:

<code class="sh">go test -c -coverpkg=. -o example -tags test</code>

Jalankan ujian dengan:

<code class="sh">./example -test.coverprofile=/tmp/profile</code>

Laporan liputan yang terhasil kini sepatutnya menunjukkan liputan penyata 100%, termasuk baris yang dikecualikan sebelum ini dalam kaedah keluar.

Atas ialah kandungan terperinci ## Bagaimana Mencapai Liputan 100% dalam Ujian Fungsian Walaupun Bintik Buta?. 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