我有以下代碼用于我正在編寫的草稿測試。在測試函數中,我正在創建一些json。我已經閱讀了有關存儲測試文件的信息。testdata但是,我正在考慮實現類似結構的東西,我可以實現它來提供返回可重用的json片段以用于測試的方法,例如:有效的作者 json無效的作者缺少 id 屬性無效的數據部分,缺少 id 屬性這樣,我就不必在每個測試中復制和粘貼相同的json片段,也可以避免從文件夾中的磁盤讀取json,從而保持運行測試的速度。testdata如果我添加一個包含此類實現的包,它應該位于何處,以便將其從最終可執行/發布中排除?我知道以 結尾的源文件不包括在內。go 是否提供類似特殊測試包的東西,其中包含用于測試的測試幫助程序結構/函數?_test.gofunc TestUnmarshalAuthor(t *testing.T) { sampleData := []byte(`{ "data": { "attributes": { "author": "ted", "id": "400300" }, "created_on": "2021-01-09T16:39:44.935Z", "id": "ad27e265-9605-4b4b-a0e5-3003ea9cc4dc", "modified_on": "2021-01-09T16:39:44.935Z", "type": "authors" }, "links": { "me": "/api/authors/ad27e265-9605-4b4b-a0e5-3003ea9cc4dc" } }`) log.Println("TestUnmarshalAuthor") log.Println("Trying to unmarshal the data") var data MyAPIResponse err := json.Unmarshal(sampleData, &data) if err != nil { log.Println("Error unmarshalling") } log.Println(data.Links.Me) log.Println(data.Data.Attributes) assert.Equal(t, "authors", data.Data.Type)}更新接受的答案和此鏈接被認為是對我的問題的簡明相關答案。
1 回答

蝴蝶刀刀
TA貢獻1801條經驗 獲得超8個贊
您可以將測試幫助程序放在單獨的包中,如果只有測試文件引用(導入)它,則它不會包含在非測試可執行二進制文件中。
它沒有像具有后綴的測試文件那樣的約定。如果正在構建的包引用了它(無論是測試還是非測試),它將被包括在內。否則不會。_test.go
另請注意,您可以使用特殊文件夾來保存靜態數據文件以供測試,該工具會忽略它。引用自 Command go: Test packages:testdata
go
go工具將忽略名為“testdata”的目錄,使其可用于保存測試所需的輔助數據。
- 1 回答
- 0 關注
- 119 瀏覽
添加回答
舉報
0/150
提交
取消