Closed bogdanpetrea closed 5 years ago
You must add the protocol scheme:
requestMock := gock.New("http://test.com")
// Return empty list of tokens
requestMock.Get("/api/v1/users").
Persist().
Reply(200).
JSON(map[string][]string{})
I don't want to mock http://127.0.0.1:34161/api?timeout=32s. I have tried
.EnableNetworking()
, but I don't get the mocked response. I get something like this instead:
All you need here is enabling the networking mode as you mention.
I didn't mention but I tried both without and with protocol (http
and https
).
EDIT: Oh, I'm not doing the request right...
EDIT2: Yup, that was it. I had to specify the protocol there. Thanks.
Hi, i would like to reopen this issue because it seems that its still not working as expected..
I'm trying mostly the same. Mocking just a single call. But i'm not able to get it working.
I've prepared a minimal working example what i'm doing
package main
import (
"fmt"
"io/ioutil"
"net/http"
"gopkg.in/h2non/gock.v1"
)
func main() {
gock.EnableNetworking()
gock.New("http://server.com").
Get("/bar").
Persist().
Reply(200).
JSON(map[string]string{"foo": "bar"})
res, err := http.Get("http://server.com/bar")
fmt.Println("Response Info:")
fmt.Println("Error :", err)
body, _ := ioutil.ReadAll(res.Body)
fmt.Println("Status Code:", res.StatusCode)
fmt.Println("Body :\n", string(body))
fmt.Println()
res, err = http.Get("https://httpbin.org/get")
fmt.Println("Response Info:")
fmt.Println("Error :", err)
body, _ = ioutil.ReadAll(res.Body)
fmt.Println("Status Code:", res.StatusCode)
fmt.Println("Body :\n", string(body))
fmt.Println()
}
As you can see i'm trying to mock the call against "server.com" and want to enableNetworking for everything else. But with the example above the mock for server.com is not working.. there is still networking enabled for this call. If a remove the enableNetworking above i get the mock working but the call to httpbin is not working..
Maybe i have missed something but i cant find the issue.
Thanks for your help eloo
Hi, It's not obvious to me how I can mock only the URLs I want and let the other requests pass.
When running the tests I get:
I don't want to mock
http://127.0.0.1:34161/api?timeout=32s
.I have tried
.EnableNetworking()
, but I don't get the mocked response. I get something like this instead: