亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何提供可重用的測試包來提供測試幫助程序函數/結構?

如何提供可重用的測試包來提供測試幫助程序函數/結構?

Go
慕森卡 2022-08-01 15:32:02
我有以下代碼用于我正在編寫的草稿測試。在測試函數中,我正在創建一些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 packagestestdatago

go工具將忽略名為“testdata”的目錄,使其可用于保存測試所需的輔助數據。


查看完整回答
反對 回復 2022-08-01
  • 1 回答
  • 0 關注
  • 119 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號