乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      python 數(shù)據(jù)驅(qū)動(ddt,unpack)

       昵稱71011036 2020-08-10

      dt 是第三方模塊,需安裝, pip install ddt

      DDT包含類的裝飾器ddt和兩個方法裝飾器data(直接輸入測試數(shù)據(jù))

      通常情況下,data中的數(shù)據(jù)按照一個參數(shù)傳遞給測試用例,如果data中含有多個數(shù)據(jù),以元組,列表,字典等數(shù)據(jù),需要自行在腳本中對數(shù)據(jù)進行分解或者使用unpack分解數(shù)據(jù)。

      1. from ddt import ddt,data,unpack
      2. import unittest
      3. test_data1 = [{"username": "zhangsan", "pwd": "zhangsan"},
      4. {"username": "lisi", "pwd": "lisi"},
      5. {"username": "wangwu", "pwd": "wangwu"},
      6. ]
      7. test_data2 = [{"username": "wukong", "pwd": "wukong"},
      8. {"username": "wuneng", "pwd": "woneng"},
      9. {"username": "wujing", "pwd": "wujing"},
      10. ]
      11. @ddt
      12. class Test(unittest.TestCase):
      13. def setUp(self):
      14. print("===Start!===")
      15. def tearDown(self):
      16. print("===end!===")
      17. @data(*test_data1)
      18. def test_ddt1(self, data):
      19. print(data)
      20. ```
      21. test_ddt1的測試結(jié)果是OK的,因為test_data2作為一個整體傳給了data,所以value打印的值為test_data1
      22. ```
      23. @data(*test_data2)
      24. def test_ddt2(self, data):
      25. print(data['username'])
      26. ```
      27. test_ddt2的測試結(jié)果是OK的,因為test_data2作為一個整體傳給了data,然后根據(jù)字典取出value值
      28. ```
      29. @data([3,2,1],[5,3,2],[10,4,6])
      30. @unpack #@unpack,那么[3,2,1]被分解開,按照用例中的三個參數(shù)傳遞
      31. def test_minus(self,a,b,expected):
      32. actual = int(a)-int(b)
      33. expected = int(expected)
      34. print(actual,expected)
      35. self.assertEqual(actual, expected)
      36. ```
      37. test_minus的測試結(jié)果也是ok的,由于在 @ data(...)下加了 @ unpack, 代表會把數(shù)據(jù)分解,得到3組測試數(shù)據(jù)
      38. ```
      39. @data([2, 3], [4, 5]) #沒有@unpack,那么[2,3]當(dāng)成一個參數(shù)傳入用例運行
      40. def test_compare(self, a, b):
      41. print(a,b)
      42. self.assertEqual(a, b)
      43. ```
      44. test_compare的測試結(jié)果是fail的,由于沒有加 @ unpack, 雖然還是會被理解成2組測試數(shù)據(jù),但是[2, 3]
      45. 作為一個整體被傳給了a, 因為b就沒有值傳入了,所以一執(zhí)行后報了
      46. TypeError: test_compare() missing 1 required positional argument: 'b' 這句錯
      47. ```
      48. if __name__ == "__main__":
      49. unittest.main()

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多