假設我有一個包含大約 210000 個英文單詞的列表。我需要使用所有這些 210000 個單詞作為測試用例。我需要確保每次運行測試時都涵蓋該列表中的每個單詞。問題是:在我的測試中存儲這些詞的最佳做法是什么?我應該將所有這些單詞保存在一個切片中(切片會不會太大?),還是應該將這些單詞保存在一個外部文件中(如 words.txt)并在需要時逐行加載文件?
1 回答

拉莫斯之舞
TA貢獻1820條經驗 獲得超10個贊
測試數據通常存儲在一個命名的目錄中testdata
,以使其與其他源代碼或數據文件分開(請參閱命令中的文檔go help test
)。該go
工具會忽略該目錄中的內容。
無論如何,210,000 個單詞應該只占用個位數兆字節的 RAM,這并不多。只需要一個輔助函數在每次測試之前從文件中讀取單詞(可能緩存它們),或者定義一個TestMain()
函數來讀取它們一次并將它們存儲在全局變量中以供隨后運行的測試訪問。
編輯testdata
:關于最佳實踐,即使數據不大,有時也最好將測試數據存儲在其中。例如,有時我需要在測試用例中使用多個簡短的 JSON 片段,并且可能不止一次使用它們。將它們存儲在 的子目錄下的適當命名的文件中testdata
比使用一堆 JSON 片段亂扔 Go 代碼更具可讀性。
輕微的性能損失在測試中通常不是問題。無論哪種方法使代碼更易于理解,都可能是“最佳實踐”。
- 1 回答
- 0 關注
- 114 瀏覽
添加回答
舉報
0/150
提交
取消