私は自分のコードでDocker client libraryの依存関係注入を使用するためにリファクタリングを試しています。私は 依存関係を注入しようとするとエラーが発生する
type DockerClient interface {
Ping(context.Context) (types.Ping, error)
}
func NewDockerUtil() (*DockerUtil, error) {
var dockerClient *DockerClient
var err error
dockerClient, err = client.NewEnvClient() //Reports incompatible types in binary and unary expressions.
if err != nil {
return nil, err
}
return &DockerUtil{
Client: dockerClient,
}, nil
}
type DockerUtil struct{
Client *DockerClient
}
を模擬することができるようにしたいメソッドとのインタフェースを作成した。しかし、私はそれを割り当てるしようとすると、私は正確に私は変更する必要がありますどのようなReports incompatible types in binary and unary expressions.
を取得しますか?
利用代わりに '* DockerClient' – Motakjuq
@Motakjuq I」の' DockerClient' assertion-種類を行う必要があり、後でその時
client.Client
でサポートされているすべてのメソッドを呼び出すしたい場合これを試しましたが、同じエラーが発生しました – sreya以前は見たことがありませんでしたが、 '&DockerUtil {....'は 'dockerClient'の代わりに' client'を使用しています – Motakjuq