我正在使用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
的实现使用了API已提供的golang.org/x/net/context
上下文(因此导入实际上是github.com/docker/docker/vendor/golang.org/x/net/context
)。
如何创建接口以使客户端实现它?