在測試用例中,執行完測試用例后,最后一步是判斷測試結果是 pass 還是fail,自動化測試腳本里面一般把這種生成測試結果的方法稱為斷言(assert)。
用 unittest 組件測試用例的時候,斷言的方法還是很多的,下面介紹幾種常用的斷言方法:assertEqual、assertIn、assertTrue
1、案例:
# coding:utf-8
import unittest
class Test(unittest.TestCase):
def test01(self):
'''判斷a=b'''
a = 1
b = 1
self.assertEqual(a,b)
def test02(self):
'''判斷ainb'''
a = "hello"
b = "hello world"
self.assertIn(a,b)
def test03(self):
'''判斷a is true'''
a = True
self.assertTrue(a)
def test04(self):
'''斷言失敗'''
a = "anne"
b = "hhhhhh"
self.assertEqual(a,b)
if __name__ == "__main__":
unittest.main()
四個case中,最后一個會斷言失敗,執行結果如下:
/
2、自定義異常
1).以 assertEqual 為例分析:
assertEqual(self, first, second, msg=None)Fail if the two objects are unequal as determined by the '=='operator.
2).翻譯:如果兩個對象不能相等,就返回失敗,相當於 return: first==second
3).這里除了相比較的兩個參數 first 和 second,還有第三個參數 msg=None,這個 msg 參數就是遇到異常后自定義輸出信息
3、unittest 常用的斷言方法
1).assertEqual(self, first, second, msg=None)
--判斷兩個參數相等:first == second
2).assertNotEqual(self, first, second, msg=None)
--判斷兩個參數不相等:first != second
3).assertIn(self, member, container, msg=None)
--判斷是字符串是否包含:member in container
4).assertNotIn(self, member, container, msg=None)
--判斷是字符串是否不包含:member not in container
5).assertTrue(self, expr, msg=None)
--判斷是否為真:expr is True
6).assertFalse(self, expr, msg=None)
--判斷是否為假:expr is False
7).assertIsNone(self, obj, msg=None)
--判斷是否為 None:obj is None
8).assertIsNotNone(self, obj, msg=None)
--判斷是否不為 None:obj is not None
