首頁 >後端開發 >Golang >如何避免在多個檔案的Go包中測試程式碼重複?

如何避免在多個檔案的Go包中測試程式碼重複?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-31 10:00:03628瀏覽

How Can I Avoid Test Code Duplication in Go Packages with Multiple Files?

處理具有多個檔案的Go 套件中的共用測試程式碼

在具有多個檔案的Go 套件中,通常為每個檔案建立單獨的測試檔案來源檔案。但是,當測試需要共享輔助函數時,這可能會導致程式碼重複。

解決方案:利用測試包共用識別碼

為了避免程式碼複製,Go 允許測試同一包子句中的檔案可以引用彼此的匯出和未匯出標識符,而無需明確導入語句。這意味著您可以將共用測試程式碼放置在任何測試檔案中,並且同一套件中的所有其他測試檔案都可以存取該程式碼。

範例結構

考慮一個包含以下檔案的套件:

mypackage/
    mypackage.go
    mypackage_test.go
    helper_test.go

您可以在helper_test.go 中定義共享測試輔助函數,而不會污染生產代碼。

說明

儘管helper_test.go沒有直接導入到mypackage_test.go中,但由於匹配的package子句(package mypackage_test),它仍然屬於同一個測試包。這允許 mypackage_test.go 存取 helper_test.go 中聲明的標識符,從而實現程式碼共用和測試可維護性。

附加說明

  • 您不是必要的為每個原始檔案建立一個測試檔案。
  • 也支援沒​​有符合來源檔案的測試檔案。
  • 如果包子句不同,測試檔案屬於不同的測試包。

以上是如何避免在多個檔案的Go包中測試程式碼重複?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn