Перейти макет интерфейса с вендором импорта - PullRequest
0 голосов
/ 01 июля 2018

Я использую 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).

Как я могу создать интерфейс, чтобы клиент реализовал его?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...