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的参数化

  • 相关阅读:
    .net注册iis
    hdu 1081To The Max
    hdu 1312Red and Black
    hdu 1016Prime Ring Problem
    hdu 1159Common Subsequence
    hdu 1372Knight Moves
    hdu 1686Oulipo
    hdu 1241Oil Deposits
    hdu 1171Big Event in HDU
    hdu 4006The kth great number
  • 原文地址:https://www.cnblogs.com/kaerxifa/p/13224650.html
Copyright © 2011-2022 走看看