天天看點

單元測試架構雜記01-->unittest參數化(paramunittest)

前言

身材不好就去鍛煉,沒錢就努力去賺。别把窘境遷怒于别人,唯一可以抱怨的,隻是不夠努力的自己。
           

一、unittest參數化介紹

  • 參數化測試用于當需要使用多組不同的測試資料測試同一個方法的時候,及用多組不同的測試資料測試登入子產品;
  • unittest參數化是指對一個unittest中的測試方法采用多組資料引入進行測試;
  • 實作unittest參數化的方式有多種,如ddt、paramunittest等。

二、paramunittest子產品安裝及應用

2.1 安裝

pip install paramunittest
           

2.2 基本實作寫法一

import unittest
import paramunittest

# 參數化資料兩組
@paramunittest.parametrized(
    ('8','5'),
    ('6','2')
)

class TestDemo(paramunittest.ParametrizedTestCase):
    def setParameters(self, numa, numb):  # 必備的要寫的方法,把參數化傳遞到測試類中
        self.numa = numa
        self.numb = numb

    def test_case(self):
        print('a=%s,b=%s'%(self.numa,self.numb))
        self.assertGreater(self.numa, self.numb)

if __name__ == "__main__":
    unittest.main()
           
  • 上述代碼中,不像往常一樣繼承unittest.TestCase,而是為了實施參數化,測試類繼承paramunittest.ParametrizedTestCase這個類
  • setParameters方法把參數化資料進行引入到測試類

2.3 基本實作寫法二

import unittest
import paramunittest

@paramunittest.parametrized(
      {'numa': 8, 'numb': 6},
      {'numb': 4, 'numa': 5}
)

class TestDemo(unittest.TestCase):
    def setParameters(self, numa, numb):
        self.numa = numa
        self.numb = numb

    def test_case(self):
        print('a=%s,b=%s'%(self.numa,self.numb))
        self.assertGreater(self.numa, self.numb)

if __name__ == "__main__":
    unittest.main()
           
  • 上述代碼中,和往常一樣繼承unittest.TestCase也可以實作參數化,兩者也沒有差別;
  • 參數化資料中的{'numa': 8, 'numb': 6},有關鍵字的時候,就和setParameters()方法中的關鍵字對應,如果沒有,則按預設順序。

*** 2.4 參數通過方法傳遞

case_datas = [{'numa': 8, 'numb': 6},{'numb': 4, 'numa': 5}]

@paramunittest.parametrized(
    *case_datas
)
           

三、小結

  • paramunittest子產品非常簡潔的實作了參數化功能
  • 讀者可以通過上述的例子快速實作去了解該子產品的含義,歡迎大家留言提出自己是如何應用的
超全面的測試IT技術課程,0元立即加入學習!有需要的朋友戳: 騰訊課堂測試技術學習位址

作者:藍寅

出處:https://www.cnblogs.com/dream66/

歡迎轉載,但未經作者同意請保留此段聲明,并在文章頁面明顯位置給出原文連結。

繼續閱讀