我以前从未做过单元测试,所以我无法理解如何在代码的任何模块中进行测试。
我已经使用boto3编写了用于在AWS中插入和删除标签的函数。我将在下面附加一个函数的代码。我需要知道如何在不使用模拟的情况下对代码进行单元测试。还是有可能?
def tagging_insertion(self, source_objectname, tagset):
s3_client = boto3.client('s3', region_name=self.parameter["default_region"])
s3_client.put_object_tagging(
Bucket = self.parameter["SourceBucketName"],
Key = source_objectname,
Tagging = tagset
)
这是我要进行单元测试的代码的一部分。
答案 0 :(得分:-1)
模拟 put_object_tagging 是正确的选择。
“肮脏”的替代方法是这样做,但不推荐。因为不应为测试而更改代码。这就是为什么要使用模拟和固定装置的原因。
def tagging_insertion(self, source_objectname, tagset, is_test=False):
s3_client = boto3.client('s3', region_name=self.parameter["default_region"])
if not is_test:
s3_client.put_object_tagging(Bucket=self.parameter["SourceBucketName"],
Key=source_objectname,Tagging=tagset)