unittest前置條件、后置條件、裝飾器、斷言


一、前置和后置

1.setUp:在寫測試用例的時候,每次操作其實都是基於打開瀏覽器輸入對應網址這些操作,這個就是執行用例的前置條件。

2.tearDown:執行完用例后,為了不影響下一次用例的執行,一般有個數據還原的過程,這就是執行用例的后置條件。

3.前置和后置都是非必要的條件,如果沒有也可以寫pass

import unittest,time,ddt
class Test(unittest.TestCase):  # 定義一個測試的類,並繼承unittest.TestCase這個類
    @classmethod  # 裝飾器,所有用例執行前執行一次
    def setUpClass(cls):  
        print("start!")

    @classmethod  # 裝飾器,所有用例執行后執行一次
    def tearDownClass(cls):
        time.sleep(1)
        print("end!")

    def setUp(self):  # 每條用例執行前執行一次
        print("開始")

    def tearDown(self):  # 每條用例執行后執行一次
        print("結束")

    def test01(self):  # 測試用例的名稱以test開頭,每條函數相當於一條測試用例
        print("執行測試用例01")
        a = 1
        b = 1
        self.assertEqual(a, b) # 判斷a和b是否相等

    def test03(self):
        print("執行測試用例03")
        a = "8"
        b = "hello world!"
        self.assertIn(a, b)  # 判斷a是否在b中

    def test02(self):
        print("執行測試用例02")
        a = True
        self.assertTrue(a)  # 判斷a是True
if __name__=="__main__":

    unittest.main(verbosity=2)
    # runner = unittest.TextTestRunner()
    # runner.run()
運行結果如下:
  test01 (__main__.Test) ... ok
  test02 (__main__.Test) ... ok
  test03 (__main__.Test) ... FAIL
  start!
  開始
  執行測試用例01
  結束
  開始
  執行測試用例02
  結束
  開始
  執行測試用例03
  結束
  end!

二、裝飾器

1、setUp與setUpClass區別

   setup():每個測試case運行前運行
   teardown():每個測試case運行完后執行
   setUpClass():必須使用@classmethod 裝飾器,所有case運行前只運行一次
   tearDownClass():必須使用@classmethod裝飾器,所有case運行完后只運行一次

2、@是修飾符,classmethod是python里的類方法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM