模拟带有供应商进口的界面

时间:2018-06-30 21:21:14

标签: go

我正在使用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)。

如何创建接口以使客户端实现它?

0 个答案:

没有答案