donglv5269 2017-08-02 20:57
浏览 201

Golang:使用Gock模拟多个HTTP请求

I am trying to mock a multiple http requests using gock for unit testing but I am getting this error:

    Error:  Get https://192.64.23.33/q1/status: gock: cannot match any request
    Error:  Get https://194.55.5.6/q1/status: gock: cannot match any request

Code:

func GetEmployee(url string, cli *http.Client) *Response {
    //Do something
    return Response
}

func company(url []string, cli *http.Client) []string {

    for employee := range url {
        resultList := GetEmployee(employee, cli)
        //Process and return an array
        return resultList
    }
}

Unittest:

func TestCompany(t *Testing.t){
  Convey("testing function company",t,func() {
  expected := &Response: {
                Name:     "xyz",
                ID:       1",
                Status:   "active",

            }
  MockCli := &http.Client{}
  testemployees := []string{"192.64.23.33","194.55.5.6"}
  for _, testempl := range testemployees {
        gock.New(fmt.Sprintf("https://%s", testempl)).
            Get("/q1/status").
            Reply(200).
            JSON(expected) 
        gock.InterceptClient(MockCli)
        response, err = company(testemployees, MockCli)

        //some assertions
       }
    })

  }

Unit tests failed when I am passing testemployees := []string{"192.64.23.33","194.55.5.6"} more than one element in a list otherwise if there is only one element then it passes as expected.

How to mock a multiple URLs here so that gock can match a request?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥50 如何用脚本实现输入法的热键设置
    • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
    • ¥30 深度学习,前后端连接
    • ¥15 孟德尔随机化结果不一致
    • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
    • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
    • ¥15 谁有desed数据集呀
    • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
    • ¥15 关于#hadoop#的问题
    • ¥15 (标签-Python|关键词-socket)