zoukankan      html  css  js  c++  java
  • unittest参数化

    在写case的时候,如果用例的操作是一样的,就是参数不同,比如说要测一个登录的接口,要测正常登录的,黑名单用户登录的,账号密码错误等等,在unittest里面要写多个case来测试。

    这样的情况只是调用接口的时候参数不一样而已,再写多个case的话就有点多余了,那怎么办呢,就得把这些参数都写到一个list里面,然后循环去执行这个case,这样就可以省去写多个case了。

    当然有个第三方模块就直接有这样的功能,不需要咱们再自己写循环了,那就是nose-parameterized,直接pip安装就可。

    pip install nose-parameterized
    import unittest
    import nose_parameterized
    def calc(a,b):
        res=round(a/b,2)
        print(res)
        return res
    case=[
        [1,2,0.50],
        [2,2,1.00],
        [3,4,0.46]
    ]#使用它提供的装饰器装饰这个函数,把咱们写的这4个数据放到这个list里面
    class MyTest(unittest.TestCase):
        @nose_parameterized.parameterized.expand(case)
        def test_func(self,a,b,e):
            res=calc(a,b)
            self.assertEqual(res,e)
    unittest.main()
    运行结果中,咱们上面只运行了一次,可以发现,它自动帮咱们运行了4次。
  • 相关阅读:
    Sql to Linq 小工具
    datagridview后台添加列
    datatable之distinct用法
    生成器
    函数练习一
    函数初识
    文件操作练习
    文件操作
    迭代器 递归
    基础数据类型上机题
  • 原文地址:https://www.cnblogs.com/wxcx/p/9300883.html
Copyright © 2011-2022 走看看