Python单元测试:如何断言嵌套列表的返回格式正确性?
验证嵌套列表格式的单元测试写法
你需要验证函数返回的是「列表嵌套列表,每个子列表包含至少一个字符串」的结构,无需关心具体字符串内容。可以通过逐层断言类型和结构实现,修改后的测试代码如下:
import unittest from faker import Faker from your_module import Pdf_class # 替换为实际导入Pdf_class的路径 class TestListElements(unittest.TestCase): def setUp(self): self.fake = Faker() self.pdf_instance = Pdf_class("pdf file path") self.result = self.pdf_instance.get_pdf_data def test_return_structure(self): # 断言返回结果整体是列表 self.assertIsInstance(self.result, list) # 遍历每个子元素,验证嵌套结构 for sub_list in self.result: # 每个子元素必须是列表类型 self.assertIsInstance(sub_list, list) # 确保每个子列表非空(匹配['任意字符串']格式) self.assertGreater(len(sub_list), 0) # 验证子列表内的元素都是字符串 for element in sub_list: self.assertIsInstance(element, str)
关键断言说明
self.assertIsInstance(self.result, list):确保返回的顶层结构是列表- 遍历子列表时,
self.assertIsInstance(sub_list, list):验证每个子项都是列表 - 如果你的格式要求每个子列表恰好只有一个字符串,可以把
self.assertGreater(len(sub_list), 0)替换为self.assertEqual(len(sub_list), 1),更严格匹配['任意字符串']的结构 self.assertIsInstance(element, str):确保子列表内的元素都是字符串类型
另外注意:原代码中faker.pystr()的调用方式有误,需要先实例化Faker()对象再调用方法;但在这个结构验证测试里,其实可以不用Faker,因为我们不关心具体返回值。
内容的提问来源于stack exchange,提问作者alex
相关产品推荐
相关产品推荐

