gpt4 book ai didi

go - 如何将 stripe-go 指向 stripe-mock 本地服务器?

转载 作者:IT王子 更新时间:2023-10-29 01:41:13 26 4
gpt4 key购买 nike

我正在使用 stripe-go执行 Stripe 操作,例如创建新客户、添加信用卡、创建订阅等。我想执行端到端测试。有 stripe-mock这是一个模拟的 HTTP 服务器,可以像真正的 Stripe API 一样响应。我在终端本地运行。我如何指向我在 Go 应用程序中使用的 stripe-go 来调用这个模拟 HTTP 服务器而不是真正的 Stripe API。

在 stripe-go 文档中有这个

// Setup
stripe.Key = "sk_key"

stripe.SetBackend("api", backend) // optional, useful for mocking

我是否应该将一些特殊的东西作为 backend 传递,以便 stripe-go 知道然后调用 http://localhost:12111 stripe-mock 的地址是哪个?

这是stripe.SetBackend

// SetBackend sets the backend used in the binding.
func SetBackend(backend SupportedBackend, b Backend) {
switch backend {
case APIBackend:
backends.API = b
case UploadsBackend:
backends.Uploads = b
}
}

这是后端

// Backend is an interface for making calls against a Stripe service.
// This interface exists to enable mocking for during testing if needed.
type Backend interface {
Call(method, path, key string, body *RequestValues, params *Params, v interface{}) error
CallMultipart(method, path, key, boundary string, body io.Reader, params *Params, v interface{}) error
}

最佳答案

正在寻找stripe.go ,公开的 BackendConfiguration 结构实现了 Backend 接口(interface)。所以以下应该有效:

httpClient := &http.Client{Timeout: defaultHTTPTimeout}

mockBackend := &stripe.BackendConfiguration{
"api",
"http://localhost:12111",
httpClient,
}

stripe.SetBackend("api", mockBackend)

关于go - 如何将 stripe-go 指向 stripe-mock 本地服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47528679/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com