首頁 > 後端開發 > Golang > 如何有效重複使用導入包中的測試程式碼?

如何有效重複使用導入包中的測試程式碼?

Barbara Streisand
發布: 2024-11-04 09:09:02
原創
226 人瀏覽過

How to Reuse Test Code in Imported Packages Effectively?

在匯入的套件中測試可重複使用程式碼

使用多個套件和測試檔案時,通常會遇到需要重複使用來自一項測試又一項測試。考慮以下目錄層次結構:

/<br>|-- main.go // 套件main,一個HTTP 伺服器,它接受請求並呼叫pkg1 中的C/U API 來完成某些任務<br>|-- main_test.go // 想要呼叫pkg1_test<br>|-- pkg1 // 中的veryfyTaskNumber // 打包pkg1, CRUD APIs為了安全起見,檢索並刪除未匯出的<pre class="brush:php;toolbar:false">|-- pkg1_test.go // contains a function verifyTaskNumber(*testing.T, taskName string, expectedNo int) which calls internal Retrieve function in pkg1
登入後複製

在這種情況下,main_test.go 需要從pkg1_test.go 存取verifyTaskNumber(),帶來以下挑戰:如何測試導入套件中的程式碼能否有效重複使用?

兩種常見方法是:

  1. 將函數移到匯入的套件:此方法使函數可用於專案中的所有測試檔案。但是,這些函數可能包含在已編譯的二進位檔案中,在這種情況下這是不想要的。
  2. 建立實用程式測試套件:此方法涉及將函數移至單獨的測試實用程式套件並將其匯入相關測試檔案。此解決方案的缺點是公用程式包中的函數可能依賴匯入包中的內部方法,而這些方法可能無法存取。

更有效的解決方案是保存內部方法的輸出將導入的套件中的函數加入到支援文件中。當呼叫實用程式包中的對應函數時,即可載入此檔案。

例如,如果pkg1有一個未匯出的函數Retrieve(),則可以在實用程式套件中建立載入支援檔案的函數並呼叫 Retrieve()。透過使用這種方法,實用程式套件的函數可以從導入的套件存取內部方法,而不會影響模組化或建置工件。

以上是如何有效重複使用導入包中的測試程式碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板