Go 如何模拟描述群集输出

Go 如何模拟描述群集输出,go,mocking,amazon-emr,aws-sdk-go,Go,Mocking,Amazon Emr,Aws Sdk Go,我已经编写了一个与EMR服务交互的代码,它将基于集群ID返回集群状态。 我试图对它进行单元测试,但我想不出来 代码: func(hc*HandlerConfig)处理程序(c entities.Cluster)(字符串,错误){ clusterID:=aws.String(c.clusterID) clusterDetails,err:=hc.EMRClient.DescribeCluster(&emr.DescribeClusterInput{ClusterId:ClusterId}) 如果错

我已经编写了一个与EMR服务交互的代码,它将基于集群ID返回集群状态。 我试图对它进行单元测试,但我想不出来

代码:

func(hc*HandlerConfig)处理程序(c entities.Cluster)(字符串,错误){
clusterID:=aws.String(c.clusterID)
clusterDetails,err:=hc.EMRClient.DescribeCluster(&emr.DescribeClusterInput{ClusterId:ClusterId})
如果错误!=零{
返回“error”,err
}
clusterStatus:=*clusterDetails.Cluster.Status.State
返回fmt.Sprintf(集群状态),无
}
单元测试代码:

func TestHandler(t*testing.t){
emrClient:=新建(emrtestutils.MockEMR)
hc:=HandlerConfig{
EMRClient:EMRClient,
}
输入:=&emr.descripebclusterinput{ClusterId:aws.String(“j-dfdslkj3kl213kj”)}
//我被困在这里了
输出:=&emr.descripbeClusterOutput{
簇
}
emrClient.On(“DescribeCluster”,input).Return(*output.Status.State)
res,err:=hc.Handler(entities.Cluster{ClusterID:“j-dfdslkj3kl213kj”})
assert.NoError(t,err)
emrClient.AssertExpections(t)
assert.Equal(t、res、output)
}
我想提供DescribeClusterOutput的模拟值


链接:

说明群集输出是一个结构。你不能模拟结构。有错误吗?此外,您是否正在使用
authentic
软件包?