go - 使用 vendored 导入模拟接口
问题描述
我正在使用 Docker API 并将其传递Client
给这样的函数:
func DoStuffToDocker(ctx context.Context, c *client.Client, ID string) {
c.ContainerInspect(ctx, ID)
// do stuff
}
我创建了一个定义我使用的函数的接口,以便我可以在我的测试中传递一个模拟:
type dockerClient interface {
ContainerInspect(ctx context.Context, containerID string) (types.ContainerJSON, error)
}
...然后更改我的函数的签名以接受接口而不是客户端。
我的问题是编译器抱怨客户端没有实现接口。据我所知,原因是ContainerInspect
使用golang.org/x/net/context
API 提供的上下文的实现(因此导入实际上是github.com/docker/docker/vendor/golang.org/x/net/context
)。
如何创建接口以便客户端实现它?
解决方案
推荐阅读
- json - 如何使用 JSON 从网页中获取单个数据
- apache - 条件 Apache 后的代理通过
- java - 将 C++ 线程程序转换为 Java 线程程序
- python - 在 txt 文件中使用 'w' 和 'r'
- c++ - 如何在函数 NOT 主函数中初始化“RInside”实例,并多次调用它而不得到“R 已初始化”?
- python - 我正在尝试使用 Keras 实现神经网络。我的错误如下:
- jmeter - 从 Jmeter 中的响应数据中获取值
- python - 运行 Keras h5 模型
- python - Azure Service Bus library is spamming console
- core-data - SwiftUI 和 Core Data:在视图中使用带有实例成员的获取请求作为参数