我正在使用兩個 AWS 服務,Glue 和 DynamoDB,并且這兩個服務具有相同的方法名稱,CreateTable因此在模擬這些服務時,我收到CreateTable is ambiguous錯誤。膠水:CreateTable https://docs.aws.amazon.com/sdk-for-go/api/service/glue/#Glue.CreateTableDynamoDB:CreateTable https://docs.aws.amazon.com/sdk-for-go/api/service/dynamodb/#DynamoDB.CreateTable有什么辦法可以解決這個問題嗎?代碼:type UpdateWorkflow struct { glueIface glueiface.GlueAPI dbIface dynamodbiface.DynamoDBAPI tableName string}func NewUpdateWorkflow(tableName string) *UpdateWorkflow { sess := sessions.NewSession() return &UpdateWorkflow{ dbIface: dynamodb.New(sess), glueIface: glue.New(sess), tableName: tableName, }}單元測試:// MockUpdateWorkflow is a mock implementation of gluetestutils and dynamodb servicetype MockUpdateWorkflow struct { glueiface.GlueAPI dynamodbiface.DynamoDBAPI mock.Mock}func setup() (*UpdateWorkflow, *MockUpdateWorkflow) { mockClient := new(MockUpdateWorkflow) mockServices := &UpdateWorkflow{ glueIface: mockClient, dbIface: mockClient, tableName: mockTableName, } return mockServices, mockClient}
1 回答

慕標琳琳
TA貢獻1830條經驗 獲得超9個贊
如果函數名稱沖突,則無法嵌入接口,必須使用命名字段:
type MockUpdateWorkflow struct {
g glueiface.GlueAPI
d dynamodbiface.DynamoDBAPI
mock.Mock
}
func setup() (*UpdateWorkflow, *MockUpdateWorkflow) {
mockClient := new(MockUpdateWorkflow)
mockServices := &UpdateWorkflow{
glueIface: mockClient.g,
dbIface: mockClient.d,
tableName: mockTableName,
}
return mockServices, mockClient
}
- 1 回答
- 0 關注
- 145 瀏覽
添加回答
舉報
0/150
提交
取消