python进阶11-unittest参数化
我们在写case的时候,如果用例的操作是一样的,就是参数不同,比如说要测一个登陆的接口,要测正常登陆的、黑名单用户登陆的、账号密码错误的等等,在unittest里面就要写多个case来测试。
这样的情况只是调用接口的时候参数不一样而已,再写多个case的话就有点多余了,那怎么办呢,就得把这些参数都写到一个list里面, 然后循环去执行这个case。这样就可以省去写多个case了。
当然有个第三方模块就直接有这样的功能,不需要咱们再自己写循环了。那就是nose-parameterized,直接pip安装即可。
pip install nose-parameterized
下面是代码
import unittest
from nose_parameterized import parameterized
#导入这个模块
class My(unittest.TestCase):
@parameterized.expand(
[
(</span>1,2,3<span style="color: rgba(0, 0, 0, 1)">),
(</span>1,2,3<span style="color: rgba(0, 0, 0, 1)">),
(</span>1,2,3<span style="color: rgba(0, 0, 0, 1)">),
(</span>1,2,4<span style="color: rgba(0, 0, 0, 1)">)
]
)</span><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">使用它提供的装饰器装饰这个函数,把咱们写的这4个数据放到这个list里面</span>
<span style="color: rgba(0, 0, 255, 1)">def</span><span style="color: rgba(0, 0, 0, 1)"> test1(self,a,b,c):
self.assertEqual(a</span>+<span style="color: rgba(0, 0, 0, 1)">b,c)
if name=='main':
unittest.main()
下面是运行结果,咱们上面只运行了一次,可以发现,它自动帮咱们运行了4次。
分类:
分类 / python知识
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏