首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Golang模拟

Golang模拟
EN

Stack Overflow用户
提问于 2017-10-03 01:01:41
回答 1查看 3K关注 0票数 3

我编写了一个用REST端点连接到服务器的客户端。客户端需要创建一个由11个不同请求组成的链来完成一个操作(它是一个洛可可备份系统)。

我正在用Go编写我的客户,我还想用Go编写我的模拟/测试。我不清楚的是,一个名为func TestMain的测试如何调用客户端的func main(),以测试11个请求链的完成。

我的客户机的二进制文件将以以下方式从shell中运行:

$ client_id=12345 region=apac3 backup

如何通过设置环境变量从测试中调用func main()?还是有别的办法?(我是舒适写作测试,所以这不是问题)

我正在查看jarcoal/httpmock中的高级示例(但我可以使用另一个库)。最后一个例子是// do stuff that adds and checks articles,我会在这里调用main()

我已经粘贴了下面的高级示例,以供以后参考。

代码语言:javascript
复制
func TestFetchArticles(t *testing.T) {
    httpmock.Activate()
    defer httpmock.DeactivateAndReset()

    // our database of articles
    articles := make([]map[string]interface{}, 0)

    // mock to list out the articles
    httpmock.RegisterResponder("GET", "https://api.mybiz.com/articles.json",
        func(req *http.Request) (*http.Response, error) {
            resp, err := httpmock.NewJsonResponse(200, articles)
            if err != nil {
                return httpmock.NewStringResponse(500, ""), nil
            }
            return resp, nil
        },
    )

    // mock to add a new article
    httpmock.RegisterResponder("POST", "https://api.mybiz.com/articles.json",
        func(req *http.Request) (*http.Response, error) {
            article := make(map[string]interface{})
            if err := json.NewDecoder(req.Body).Decode(&article); err != nil {
                return httpmock.NewStringResponse(400, ""), nil
            }

            articles = append(articles, article)

            resp, err := httpmock.NewJsonResponse(200, article)
            if err != nil {
                return httpmock.NewStringResponse(500, ""), nil
            }
            return resp, nil
        },
    )

    // do stuff that adds and checks articles
}
EN

回答 1

Stack Overflow用户

发布于 2017-10-03 02:44:11

写出来帮助我回答了我自己的问题。

main()将读取环境变量,然后调用类似于doBackup(client_id, region)的函数。我的测试将模拟端点,然后调用doBackup(client_id, region)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46535770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档