匯入套件中的可重複使用測試程式碼
在提供的場景中,您有一個測試檔案(main_test.go),需要存取另一個套件(pkg1_test.go)中的僅測試函數。這對跨導入的包重用測試程式碼提出了挑戰。
可能的解決方案及其缺點:
-
將函數移至pkg1.go: 這使得main_test.go 可以使用這些函數,但它們可能會成為二進位檔案的一部分,這是不可取的。
-
使用單獨的 testutility 套件: 雖然這允許您對測試進行分組 -僅函數,它引入了對 pkg1 中內部方法的依賴,產生了潛在的問題。
建議解決方案:
而不是使用上述任何一種方法,請考慮以下方法:
-
建立支援包:將僅測試函數移至名為support 的新包。該套件應該僅依賴 pkg1 的公共介面。
-
使用支援文件: 在支援中,定義一個支援文件,其中包含 pkg1 的私有函數的輸出。
-
在支援函數中載入支援檔:在支援包中,建立一個載入支援檔案並執行必要操作的函數。
- **從 main_test.go 呼叫支援函數: ** 在 main_test.go 中匯入支援包,並呼叫使用 pkg1` 中私有函數的函數。
此解:
- 將僅測試程式碼分開來自生產程式碼。
- 確保 pkg1 的內部函數保持私有。
- 避免二進位分發問題。
以上是如何在保持內部函數私有的同時重複使用導入包中的測試程式碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!