unitest+request

博客围绕Python展开,主要提及了JSON和Unitest相关内容。JSON是常用的数据交换格式,Unitest则可用于Python代码的单元测试,二者在Python开发中都较为重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

json

在这里插入图片描述
在这里插入图片描述

unitest

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

### 使用 `unittest` 结合 `ddt` 和 CSV 文件进行单元测试 以下是通过 `unittest`、`ddt` 和 CSV 文件结合的单元测试示例代码。此代码展示了如何从 CSV 文件中读取数据并将其用于参数化的单元测试。 #### 示例代码 ```python import unittest from ddt import ddt, data import pandas as pd import json # 读取CSV文件的数据 def load_csv_data(file_path): """加载CSV文件并将数据转换为列表""" df = pd.read_csv(file_path) # 读取CSV文件 json_data = df.to_json(orient="records") # 转换为JSON字符串 list_data = json.loads(json_data) # 将JSON字符串转换为Python列表 return list_data @ddt class TestCsvData(unittest.TestCase): @data(*load_csv_data("test_data.csv")) # 加载CSV文件中的数据作为测试用例输入 def test_example(self, value): """ 测试函数,接收来自CSV文件的每一行数据。 假设CSV文件中有两列:input和expected_output。 """ input_value = value['input'] # 获取输入值 expected_output = value['expected_output'] # 获取期望输出值 result = int(input_value) * 2 # 示例逻辑处理(假设业务逻辑是将输入乘以2) self.assertEqual(result, expected_output, f"Input {input_value} failed.") # 断言实际结果等于预期结果 if __name__ == "__main__": unittest.main() ``` --- #### 解析说明 1. **CSV 数据加载** - 函数 `load_csv_data` 是用来读取 CSV 文件的内容,并将其转换成 Python 列表格式。这里使用了 Pandas 库来简化操作[^4]。 2. **DDT 参数化** - 在 `@data` 装饰器中传递由 `load_csv_data` 返回的列表数据,从而实现了基于 CSV 文件内容的参数化测试[^1]。 3. **测试逻辑** - 每次调用 `test_example` 方法时,都会传入一条来自 CSV 的记录。每条记录被解析为键值对形式(如字典),其中可以通过字段名访问对应的值。 4. **断言验证** - 对于每次测试,计算的结果会与预定义的期望值比较,如果两者不同,则抛出错误消息指出失败的具体情况。 --- #### 注意事项 - 确保 CSV 文件路径正确无误,且文件结构符合预期(即包含所需的列名称)。例如,“test_data.csv”的前几行可能如下所示: ``` input,expected_output 5,10 7,14 ``` - 如果需要支持更复杂的场景或者动态调整分隔符等设置,可以在 `pd.read_csv()` 中进一步配置相关选项。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值