python unittest参数化_python unittest参数化nose-parameterized和paramunittest

今天要和大家聊聊参数化的问题,什么叫做参数化?比如一个登录系统的操作,我们会设计很多用例来测试这个登录功能是否OK(用户名正确,密码错误;用户名错误,密码错误;用户名正确,密码正确等)。这时候发现输入的参数是在不断变化的,但是都是执行同一个登录操作。所以参数化其实就是一个方法,在不同输入参数的情况下进行用例测试。

在unittest中常用的参数化有三类:nose-parameterized、paramunittest、ddt。

一、nose-parameterized

1、环境准备

在安装了pip的情况下,在cmd下执行pip install nose-parameterized。

2、实践

使用前先导入模块:fromnose_parameterizedimportparameterized。

上图代码,主要测试一个简单的加法运算,可以看到@parameterized.expand后加了三个参数进行测试,其中一个参数是用例名字,后边三个参数分别对应test_add方法中a/b/c三个变量,一一对应的关系。可以关注其写法,且参数的对应关系,如果少了参数或者没有对应,会导致用例执行报错或者失败。

二、paramunittest

1、环境准备

pip install paramunittest

从安装的情况来看,提示这个库已经存在了,说明这个库应该是python自带的一个参数化库,如果大家发现没有的话可以自行安装。

2、实践

从官网上可以看到它给的一个实例

其参数化里头可以是元组,也可以是字典,设置元组合字典可以一起使用。

元组('1','2')其值分别对应a,b;

(('4',),{'b':'5'})中a为4,b为5;

((),{'a':5,'b':6})中a为5,b为6;

{'a':5,'b':6}中a,b一一对应。

从中可以看出paramunittest方法和参数化中参数的一个对应关系,值得一提的是,如果参数化中是字典的形式,那么必须要和方法中参数名要一致,否则会出现失败。如:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值