unitest單元測試TestCase 執行測試用例(二) 斷言


我們在做接口自動化的時候會用當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中

 


免責聲明!

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



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