You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 08:48:14