我有一些代码可以向动态网站发送请求,我想测试一下。显然,测试需要在任何时间由任何人运行,因此可以将json字符串放入* http.Response进行测试,而不是实际使用REST API。
示例代码:
func get (c *http.Response, err error) (string, error) {
//code
}
测试文件:
func TestGet(t *testing.T) {
//code to have put json string for test *http.Response
get(???, nil)
}
答案 0 :(得分:2)
您希望使用bytes.Buffer
将您拥有的数据转换为io.Reader
和NopCloser
(来自io/ioutil
),使其成为io.ReadCloser
r := &http.Response{
Status: "200 OK",
StatusCode: 200,
// etc., lots more fields needed here.
Body: ioutil.NopCloser(bytes.NewBufferString(json))
}
如果您的json位于[]byte
,请使用NewBuffer
代替NewBufferString
。