zoukankan      html  css  js  c++  java
  • UnitTest-case参数化

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

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

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

    pip install nose-parameterized

    代码示例:

    from parameterized import  parameterized,param
    import unittest
    
    def add(a,b):
       return a+b
    
    class AddTest(unittest.TestCase):
       @parameterized.expand([
          param(1,1,2),
          param(1.0,1.0,2.0),
          param('hi',' wuya','hi wuya')
       ])
       def test_add_cases(self,first,second,result):
          self.assertEqual(add(first,second),result)
          
    if __name__ == '__main__':
        unittest.main()

    当循环到第一个元组的参数的时候,first其实是1,second是1,result是2,依次循环,这样就可以使用parameterized,来达到一个测试点的代码完成N个测试点的场景的测试。

    参考文档:

    unittest参数化

    unittest的参数化

  • 相关阅读:
    C# Dictionary 字典
    int.Parse()与int.TryParse()
    jquery 随机数
    DateGradeView分页绑定
    使用tcpdump抓Android网络包
    Android快速开发框架——AndroidAnnotations(Code Diet)
    浅谈 android-query
    Android网络框架技术
    PHP: 深入了解一致性哈希
    png图片压缩优化
  • 原文地址:https://www.cnblogs.com/kaerxifa/p/13224650.html
Copyright © 2011-2022 走看看