我有以下代码用于我正在编写的草稿测试。在测试函数中,我正在创建一些json。
我已经阅读了有关存储测试文件的信息。testdata
但是,我正在考虑实现类似结构的东西,我可以实现它来提供返回可重用的json片段以用于测试的方法,例如:
有效的作者 json
无效的作者缺少 id 属性
无效的数据部分,缺少 id 属性
这样,我就不必在每个测试中复制和粘贴相同的json片段,也可以避免从文件夹中的磁盘读取json,从而保持运行测试的速度。testdata
如果我添加一个包含此类实现的包,它应该位于何处,以便将其从最终可执行/发布中排除?我知道以 结尾的源文件不包括在内。go 是否提供类似特殊测试包的东西,其中包含用于测试的测试帮助程序结构/函数?_test.go
func 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)
}
更新
接受的答案和此链接被认为是对我的问题的简明相关答案。
蝴蝶刀刀
相关分类