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

Python中无返回值函数的单元测试方法咨询

CS50期末项目:PDF工资条生成器测试方案

1. 测试create_pdf()函数

  • 准备固定测试用的.xlsx文件,比如包含2-3条明确的工资数据(姓名、工号、薪资等字段写死)
  • 调用create_pdf()时指定一个临时输出目录,避免和正式文件混淆
  • 验证点:
    • 输出目录下生成的PDF文件数量,是否和Excel中有效数据行数一致(注意排除表头行)
    • 用pdfplumber或PyPDF2读取其中一个PDF,提取文本内容,检查是否和对应行的Excel数据匹配(比如姓名、薪资数值是否正确)

2. 测试merge_pdf()函数

  • 先准备几个已知的测试PDF文件(比如手动创建2个带内容的PDF,或用create_pdf()生成的测试文件)
  • 调用merge_pdf(),传入测试PDF列表和合并后的输出路径
  • 验证点:
    • 检查指定路径下是否存在合并后的PDF文件
    • 用PDF工具读取合并文件的总页数,是否等于所有输入PDF的页数之和
    • 可选:提取合并文件的文本,确认内容是各个输入PDF的内容按顺序拼接的

3. 测试get_print_date()函数

方法一:用Mock固定时间(推荐)

  • 用unittest.mock.patch替换datetime.now()的返回值,比如固定为datetime(2024, 5, 20, 14, 30, 0)
  • 调用get_print_date(),断言返回的字符串是否和你预期的格式匹配(比如"2024-05-20 14:30:00")

方法二:验证格式和时间范围

  • 调用函数获取返回字符串,用正则表达式检查格式是否符合你定义的规则(比如匹配^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$)
  • 把返回字符串转成datetime对象,检查它和当前时间的差值是否在几秒内(抵消代码执行的微小延迟)

内容的提问来源于stack exchange,提问作者SoulSeeker916

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 17:56:09