我們在做接口自動化的時候會用當unittest框架,這個框架中是有assert方法
當我們寫好我們的case后 總要有個驗證是否正確的東西,assert就給我們提供了非常強大的結果驗證
| 序號 | 斷言方法 | 斷言描述 |
|---|---|---|
| 1 | assertEqual(arg1, arg2, msg=None) | 驗證arg1=arg2,不等則fail |
| 2 | assertNotEqual(arg1, arg2, msg=None) | 驗證arg1 != arg2, 相等則fail |
| 3 | assertTrue(expr, msg=None) | 驗證expr是true,如果為false,則fail |
| 4 | assertFalse(expr,msg=None) | 驗證expr是false,如果為true,則fail |
| 5 | assertIs(arg1, arg2, msg=None) | 驗證arg1、arg2是同一個對象,不是則fail |
| 6 | assertIsNot(arg1, arg2, msg=None) | 驗證arg1、arg2不是同一個對象,是則fail |
| 7 | assertIsNone(expr, msg=None) | 驗證expr是None,不是則fail |
| 8 | assertIsNotNone(expr, msg=None) | 驗證expr不是None,是則fail |
| 9 | assertIn(arg1, arg2, msg=None) | 驗證arg1是arg2的子串,不是則fail |
| 10 | assertNotIn(arg1, arg2, msg=None) | 驗證arg1不是arg2的子串,是則fail |
| 11 | assertIsInstance(obj, cls, msg=None) | 驗證obj是cls的實例,不是則fail |
| 12 | assertNotIsInstance(obj, cls, msg=None) | 驗證obj不是cls的實例,是則fail |
本次我們先介紹3種常用的方法,大家若想拓展更多的知識,可以拿以上列表自行嘗試。
分別是assertEqual,assertNotEqual,assertIn
第一種斷言:assertEqual
斷言相等
| assertEqual(arg1, arg2, msg=None) | 驗證arg1=arg2,不等則fail |
示例代碼如下
import unittest
class test(unittest.TestCase):
def testSubtract(self):
a = 1
b = 1
self.assertEqual(a,b,msg=None)
if __name__ == '__main__':
unittest.main()

我們執行一下錯誤的給大家看下

從上圖我們可以看到,a = 1 b = 2 當我們斷言a == b 的時候,並沒有成功,程序報錯了。
第二種斷言:assertNotEqual
我們剛剛講了斷言兩個值是否相等,是assertequal,那么在NotEqual 也是可以直觀看出,兩個值不相等的斷言方式

示例代碼:
'''
博客園:酸芒果
作者:張天賜
'''
import unittest
class test(unittest.TestCase):
def testSubtract(self):
a = 1
b = 2
self.assertNotEqual(a,b,msg='a與b相等')
if __name__ == '__main__':
unittest.main()
如果相等我們看看執行結果

第三種是assertIn
斷言某個元素是否在某個里面,在則斷言成功,不在則失敗

示例代碼:
'''
博客園:酸芒果
作者:張天賜
'''
import unittest
class test(unittest.TestCase):
def testSubtract(self):
a = [1,2,3,4,5,6,7]
self.assertIn(7,a,msg='不在')
if __name__ == '__main__':
unittest.main()
可以從代碼看出,我們斷言 7,a 的意思是7是否在a這個列表中,因為在,我們執行成功,后面的mag是失敗后給的提示,所有我們並沒有看到
下面我們試下8 是否在a中

