unittest單元測試框架和斷言
一、unittest單元測試框架簡介
1、導入unittest模塊
import unittest
2、定義測試類
class Login(unittest.TestCase):
3、前置條件
def setUp(self): u'''沒有前置條件可以寫pass''' pass
4、測試case加斷言
def test01(self): #測試用例必須以test開頭 print("執行測試用例01") result = '1' self.assertTrue(result) #斷言result是不是True
5、后置條件
def tearDown(self): u'''沒有后置條件可以寫pass''' pass
6、運行主函數
if __name__ == '__main__': unittest.main()
示例:
#導入unittest模塊 import unittest class Login(unittest.TestCase): def setUp(self): u'''沒有前置條件可以寫pass''' pass def test01(self): #測試用例必須以test開頭 print("執行測試用例01") result = '1' self.assertTrue(result) #斷言result是不是True def tearDown(self): u'''沒有后置條件可以寫pass''' pass if __name__ == '__main__': unittest.main()
二、斷言
unittest常用的斷言方法
1、assertEqual(self, first, second,msg=None)
def test02(self):#判斷兩個參數是否相等 print("執行測試用例02") result1 = '1' result2 = '2' self.assertEqual(result1,result2,msg="%s不等於%s"%(result1,result2))
2、assertNotEqual(self, first, second,msg=None)
def test03(self):#判斷兩個參數是否不相等 print("執行測試用例03") result1 = '1' result2 = '2' self.assertNotEqual(result1,result2,msg="%s等於%s"%(result1,result2))
3、assertIn(self, member, container,msg=None)
def test04(self):#判斷一個參數是否包含另一個參數 print("執行測試用例04") result1 = '1' result2 = '21' self.assertIn(result1,result2,msg="%s不包含%s"%(result2,result1))
4、assertNotIn(self, member,container, msg=None)
def test05(self):#判斷一個參數是否不包含另一個參數 print("執行測試用例05") result1 = '1' result2 = '2' self.assertNotIn(result1,result2,msg="%s包含%s"%(result2,result1))
5、assertTrue(self, expr, msg=None)
def test06(self): #測試一個參數是否為真 print("執行測試用例06") result = '' self.assertTrue(result,msg="%s不是True"%result)
6、assertFalse(self, expr, msg=None)
def test07(self):#判斷一個參數是否不包含另一個參數 print("執行測試用例07") result = '' self.assertFalse(result,msg="%s不是False"%(result))
7、assertIsNone(self, obj, msg=None)
def test08(self):#判斷一個參數是否不包含另一個參數 print("執行測試用例08") result = None self.assertIsNone(result,msg="%s不是None"%(result))
8、assertIsNotNone(self, obj,msg=None)
def test09(self):#判斷一個參數是否不包含另一個參數 print("執行測試用例09") result = '123' self.assertIsNotNone(result,msg="%s是None"%(result))
示例:
#導入unittest模塊 import unittest class Login(unittest.TestCase): def setUp(self): u'''沒有前置條件可以寫pass''' print("開始執行") # pass def test01(self): #測試用例必須以test開頭 print("執行測試用例01") result = '1' self.assertTrue(result) #斷言result是不是True def test02(self):#判斷兩個參數是否相等 print("執行測試用例02") result1 = '1' result2 = '1' self.assertEqual(result1,result2,msg="%s不等於%s"%(result1,result2)) def test03(self):#判斷兩個參數是否不相等 print("執行測試用例03") result1 = '1' result2 = '2' self.assertNotEqual(result1,result2,msg="%s等於%s"%(result1,result2)) def test04(self):#判斷一個參數是否包含另一個參數 print("執行測試用例04") result1 = '1' result2 = '21' self.assertIn(result1,result2,msg="%s不包含%s"%(result2,result1)) def test05(self):#判斷一個參數是否不包含另一個參數 print("執行測試用例05") result1 = '1' result2 = '2' self.assertNotIn(result1,result2,msg="%s包含%s"%(result2,result1)) def test06(self): #測試一個參數是否為真 print("執行測試用例06") result = '1' self.assertTrue(result,msg="%s不是True"%result) def test07(self):#判斷一個參數是否不包含另一個參數 print("執行測試用例07") result = '' self.assertFalse(result,msg="%s不是False"%(result)) def test08(self):#判斷一個參數是否不包含另一個參數 print("執行測試用例08") result = None self.assertIsNone(result,msg="%s不是None"%(result)) def test09(self):#判斷一個參數是否不包含另一個參數 print("執行測試用例09") result = '123' self.assertIsNotNone(result,msg="%s是None"%(result)) def tearDown(self): u'''沒有后置條件可以寫pass''' print("結束...") # pass if __name__ == '__main__': unittest.main()
PS:unittest的執行順序,先執行setUp,然后執行測試用例test*(測試用例是按照名稱順序執行),最后執行tearDown。
