Ddt框架

数据驱动的单元测试是为数据源中的每一行重复运行的一种单元测试。数据驱动的但马原测试的常用情况是使用多个输入值测试API。不是编写调用API的多个单元测试(每个单元测试具有一组行的输入),也不是在单元测试中创建一个数组并使用循环代码,而是可以编写执行api的单个单元测试方法。 然后可以重数据库表的行中警醒数据检索一遍遍地给测试方法的连续调用,可以使用此技术测试由不同用户(每个用户具有不同角色)使用的应程序,对每个用户,数据源中的一行将根据角色只是预期相应。然后,该测试将通过针对每个用户运行功能

1.单个传参:

import unittest
from ddt import ddt,data
#写一个测试类
@ddt
class Mytest(unittest.TestCase):
    @data(3)
    def test_ddt1(self,value):
        print(f"====>ddt1:{value}")
        assert value == 2,"这个数不是2"

if __name__ == '__main__':
    unittest.main()

2. 多个传参

import unittest
from ddt import ddt,data
#写一个测试类
@ddt
class Mytest(unittest.TestCase):
    @data(2,3,4,5,6,7,8)
    def test_ddt1(self,value):
        print(f"====>ddt1:{value}")
        if value == 2:
            assert value == 2,"吃饭"
        elif value == 3:
            assert value == 3,"喝水"

if __name__ == '__main__':
    unittest.main()

3.列表传参

import unittest
from ddt import ddt,data
#写一个测试类
list1 = [1,2,3,4,5,6,7,8]
@ddt
class Mytest(unittest.TestCase):
    @data(*list1)
    def test_ddt1(self,value):
        print(f"====>ddt1:{value}")
   

if __name__ == '__main__':
    unittest.main()

4.多组传参(提前准备好的数据)

import unittest
from ddt import ddt,data
#写一个测试类
list1 = [1,2,3,4,5,6,7,8]
@ddt
class Mytest(unittest.TestCase):
    @data(*list1)
    def test_ddt1(self,value):
        print(f"====>ddt1:{value}")
        if value == 2:
            assert value == 2,"吃饭"
        elif value == 3:
            assert value == 3,"喝水"

if __name__ == '__main__':
    unittest.main()

5.单组传参

import unittest
from ddt import ddt,data,unpack
#写一个测试类
@ddt
class Mytest(unittest.TestCase):
    @data({"value1":1,"value2":2})
    @unpack
    def test_ddt1(self,value1,value2):
        print(f"====>ddt1:{value1}---{value2}")

if __name__ == '__main__':
    unittest.main()

6.多组传参

import unittest
from ddt import ddt,data,unpack
#写一个测试类
list1 = [{"value1":1,"value2":2},{"value1":3,"value2":4},{"value1":1,"value2":6}]
@ddt

class Mytest(unittest.TestCase):
    @data(*list1)
    @unpack
    def test_ddt1(self,value1,value2):
        print(f"====>ddt1:{value1}---{value2}")

if __name__ == '__main__':
    unittest.main()
09-15 14:50