特征
- 简单、富有表现力、流利的 API。
- 语义API DSL用于声明性HTTP模拟声明。
- 内置帮手,方便 JSON/XML 嘲笑。
- 支持持久和易失性 TTL 限制的模拟。
- 完全常规的表达式能够HTTP请求模拟匹配。
- 专为测试和运行时间场景而设计。
- 按方法匹配请求、URL 参数、标题和身体。
- 可扩展和可插入的 HTTP 匹配规则。
- 在模拟模式和真实网络模式之间切换的能力。
- 过滤/映射 HTTP 请求以获得准确的模拟匹配的能力。
- 支持地图和过滤器,轻松处理模拟。
- 使用界面进行宽兼容的HTTP拦截器。
http.RoundTripper - 适用于任何兼容的客户端,如绅士。
net/http - 网络延迟模拟(测试版)。
- 可扩展和可破解的API。
- 无依赖。
package testimport ( "github.com/nbio/st" "gopkg.in/h2non/gock.v1" "io/ioutil" "net/http" "testing")func TestSimple(t *testing.T) { defer gock.Off() gock.New("http://foo.com"). Get("/bar"). Reply(200). JSON(map[string]string{"foo": "bar"}) res, err := http.Get("http://foo.com/bar") st.Expect(t, err, nil) st.Expect(t, res.StatusCode, 200) body, _ := ioutil.ReadAll(res.Body) st.Expect(t, string(body)[:13], `{"foo":"bar"}`) // Verify that we don't have pending mocks st.Expect(t, gock.IsDone(), true)}
https://github.com/h2non/gock