我正在使用 gin
作为我的 http 服务器,并在 json 中发回一个空数组作为我的响应:
c.JSON(http.StatusOK, []string{})
我得到的结果json字符串是"[]\n"
。换行符由 json 编码器对象添加,参见 here .
使用 goconvey
,我可以像这样测试我的 json
So(response.Body.String(), ShouldEqual, "[]\n")
但是除了向所有字符串添加换行符之外,是否有更好的方法来生成预期的 json 字符串?
最佳答案
您应该首先将响应主体解码为一个结构,然后与生成的对象进行比较。示例:
result := []string{}
if err := json.NewDecoder(response.Body).Decode(&result); err != nil {
log.Fatalln(err)
}
So(len(result), ShouldEqual, 0)
关于json - 在 Golang 中对 http json 响应进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33659298/