让我们假设我有一个函数,它更新DDB中的项目并解组对象,如下所示。
func update(ddbClient) {
updatedItem, err := ddbClient.updateItem(...)
obj := new(MyCustomObj)
err := dynamodbattribute.UnMarshalMap(updatedItem.Attributes, &obj)
if err != nil {
fmt.println("Error while unmarshalling")
}
}
现在我需要写一个模拟测试,这样unmarshalMap就会抛出错误,我可以为此写一个测试。
请注意,我已经有一个UpdateItem的模拟,但它不能抛出非法的JSON,因为它可能会在我不想的地方中断。
1条答案
按热度按时间mpgws1up1#
您可以定义自己的接口结构来解析dynamo对象,然后模拟它。
虽然似乎你正在尝试行使所有的逻辑路径。不太清楚为什么需要这样做,但如果您正在跟踪代码覆盖率,我不建议您100%跟踪