我有以下代码用于我正在编写的草稿测试。在测试函数中,我正在创建一些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 关注
- 123 浏览
添加回答
举报
0/150
提交
取消