簡體   English   中英

Golang:如何在導入的包中重用測試代碼?

[英]Golang: How to reuse test code in imported package?

這是我的目錄層次結構:

/
|-- main.go // package main, an HTTP server which accepts request and calls C/U APIs in pkg1 to finish certain task
|-- main_test.go // wants to call veryfyTaskNumber in pkg1_test
|-- pkg1 // package pkg1, CRUD APIs with Retrieve&Delete unexported for safety
    |-- pkg1_test.go // contains a function verifyTaskNumber(*testing.T, taskName string, expectedNo int) which calls internal Retrieve function in pkg1

我只在pkg1_test.go有一些實用函數用於測試。 main.go進口pkg1 現在我想在main_test.go使用這些函數。 搜索后我發現了兩種可能的解決方案,但它們都有一些缺點:

  • 將這些功能移動到pkg1.go 但是,這些函數可能包含在go build生成的二進制文件中。
  • 將這些函數移動到一個單獨的testutility包中,然后手動將其導入*_test.go 問題是這些函數在pkg1使用了一些內部方法。

所以我想知道是否有更好的解決方案來解決這個問題。

如果您在整個項目的*_test.go文件中使用此函數,最好將其移動到utils包並在*_test.go導入此包。 此外,由於此util包僅用於測試目的,我建議將pkg1的內部函數的輸出保存在支持文件中,並在調用支持包的函數時加載它,該函數應使用pkg1的私有函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM