如何使用pytest编写测试函数验证目标函数返回值为字典类型
pytest验证函数返回值为字典的实现方案
第一步:处理模块导入
首先确保你的测试文件可以正确导入youtube文件夹下的diagnostics模块,如果你当前的测试文件和youtube文件夹不在同一级目录,可以先在测试文件开头加路径配置:
import sys import os # 把youtube文件夹的上级目录加到Python搜索路径,替换为你本地的实际路径 sys.path.append(os.path.abspath("/path/to/parent/of/youtube")) import diagnostics import pytest
第二步:编写测试函数
直接用isinstance()判断返回值类型即可,符合你需求的测试代码如下:
def test_analisys(entries): # 调用待测试函数 result = diagnostics.analisys(entries, 100000) # 断言返回值类型为字典,不符合则输出指定提示 msg = "Type incorrect" assert isinstance(result, dict), msg
核心说明
- 用
isinstance()做类型判断比type(result) == dict更严谨,可以兼容dict子类的返回场景 - 如果返回值不是字典类型,pytest运行测试时会直接输出你指定的
Type incorrect提示 - 你原有代码中
assert ... == 962是判断返回值等于数值962,和验证类型的需求不符,已经调整为类型判断逻辑 - 参数
entries需要提前准备好符合analisys函数输入要求的测试数据,你可以直接在测试函数里定义固定测试值,或者通过pytest fixture注入测试用例
内容的提问来源于stack exchange,提问作者breidi
相关产品推荐
相关产品推荐

