unittest中的測試斷言分兩天總結,hhh其實內容不多,就是懶~ 斷言的作用是什麼? 答:設置測試斷言以後,能幫助我們判斷測試用例執行結果。 我們先看下unittest支持的斷言有哪些: 對上面的斷言語法有個大概的瞭解後,我們使用一下看看代碼: 一: 註意:相等,必須是內容和類型都完全相等哦,比 ...
unittest中的測試斷言分兩天總結,hhh其實內容不多,就是懶~
斷言的作用是什麼? 答:設置測試斷言以後,能幫助我們判斷測試用例執行結果。
我們先看下unittest支持的斷言有哪些:
對上面的斷言語法有個大概的瞭解後,我們使用一下看看代碼:
一:
斷言 assertEqual(a,b) 它可以判斷兩個參數相等,比如我們把獲取到的百度首頁的title和我們寫的title做對比。
1 ''' 2 標題 斷言 assertEqual() 它可以判斷兩個參數相等,比如我們把獲取到的百度首頁的title和我們寫的title做對比。 3 ''' 4 import unittest 5 from bokeyuan.bokeyuan_public import * 6 7 class baidu_page(public_baidu): #繼承了另一個.py模塊中的public_baidu類,這個類繼承了TestCase 8 ''' 9 因為繼承了自己另一個.py模塊中的類public_baidu,所以不需要在寫setup和teardown兩個測試固件的方法。 10 ''' 11 '''直接寫用例''' 12 def test_baidu_title(self): #只要是用例,函數名字開頭必須是test_ 不然不會被識別成用例的!! 13 print('獲取到的title是:',self.driver.title) #我們列印獲取到的title內容 14 self.assertEqual(self.driver.title,'百度一下,你就知道') #第二個參數是我們自己寫的需要校驗的內容哦 15 16 @staticmethod 17 def suite(self): 18 unittest.TestSuite(unittest.makeSuite(baidu_page)) 19 return suite #一定要返回結果給調用方 20 if __name__ == '__main__': 21 unittest.main(verbosity=2).run(baidu_page.suite()) #把baidu_page類中的案例,傳入到測試套件中suite(),suite()方法是被裝飾了的,所以不需要實例化可以直接類名調用
註意:相等,必須是內容和類型都完全相等哦,比如 str('1') 和 int(1) 這兩個1內容是一樣的,但是他們的數據類型可不是一樣的,所以不會是相等的哦!字元串和數據類型是兩個類型哦~!!! 相等的兩個含義你學會了嗎?
那麼assertNotEqual(a,b) 代表的是不相等,你可以舉一反三寫出小的案例嗎? 題目:判斷一下 3不等4
不會的朋友可以留言,大家一起相互學習~~
二:assertTrue(x) 返回的是bool類型的數據,True大家都不陌生,真真為真,真假為假,假假為假~~
我們看個小案例,我判斷一下百度首頁的輸入框是可以輸入內容,如果可以編輯,那麼bool值肯定就是真(True)~~
備註:
so.is_enabled() 作用是檢查元素是否可以編輯 如文本框
1 ''' 2 標題 斷言 assertTrue() 它返回的是Ture,也就是條件為真,就是通過了~~真真為真 3 ''' 4 import unittest 5 from bokeyuan.bokeyuan_public import * 6 7 class baidu_page(public_baidu): #繼承了另一個.py模塊中的public_baidu類,這個類繼承了TestCase 8 ''' 9 因為繼承了自己另一個.py模塊中的類public_baidu,所以不需要在寫setup和teardown兩個測試固件的方法。 10 ''' 11 '''直接寫用例''' 12 def test_baidu_ShuRuKuang(self): #只要是用例,函數名字開頭必須是test_ 不然不會被識別成用例的!! 13 '''驗證百度首頁的輸入框,可以輸入內容''' 14 so = self.driver.find_element_by_id('kw') 15 self.assertTrue(so.is_enabled()) #它 so.is_enabled() 作用是檢查元素是否可以編輯 如文本框 16 17 @staticmethod 18 def suite(self): 19 unittest.TestSuite(unittest.makeSuite(baidu_page)) 20 return suite #一定要返回結果給調用方 21 if __name__ == '__main__': 22 unittest.main(verbosity=2).run(baidu_page.suite()) #把baidu_page類中的案例,傳入到測試套件中suite(),suite()方法是被裝飾了的,所以不需要實例化可以直接類名調用
可以看到案例是ok,表示通過,說明是可以編輯的,通過案例你會使用assertTrue(x) 了嗎?是不是認識了呢?
同樣的assertFalse() 代表假,你可以用它判斷一下 3等於4 嗎? 如果你不會寫 那麼留言哦~~大家一起學習
三、aeertIn(a,b) 代表 a是不是在b裡面,或者被b所包含。我們看下代碼示例:
1 ''' 2 標題 斷言 assertIn(a,b) 代表a是不是被b所包含,a是不是在b裡面 3 ''' 4 import unittest 5 from bokeyuan.bokeyuan_public import * 6 7 class baidu_page(public_baidu): #繼承了另一個.py模塊中的public_baidu類,這個類繼承了TestCase 8 ''' 9 因為繼承了自己另一個.py模塊中的類public_baidu,所以不需要在寫setup和teardown兩個測試固件的方法。 10 ''' 11 '''直接寫用例''' 12 def test_baidu_ShuRuKuang(self): #只要是用例,函數名字開頭必須是test_ 不然不會被識別成用例的!! 13 '''驗證百度兩個字,在百度的title內容中包含''' 14 self.assertIn('百度',self.driver.title) 15 16 @staticmethod 17 def suite(self): 18 unittest.TestSuite(unittest.makeSuite(baidu_page)) 19 return suite #一定要返回結果給調用方 20 if __name__ == '__main__': 21 unittest.main(verbosity=2).run(baidu_page.suite()) #把baidu_page類中的案例,傳入到測試套件中suite(),suite()方法是被裝飾了的,所以不需要實例化可以直接類名調用
同樣的方法,你能有可以用assertIsNot(a, b) 代表a不在b中包含。寫一個小案例嗎?題目: 字元串 ’b‘ 不在 字元串 ’acc‘ 中包含
今天的內容就是這麼多了,其實常用的斷言(assert)方法就是這三種,其他的也會用到,但是不要貪,先學會這三種以及相反的三種,就是六種了~~棒~~~
不會的朋友,可以留言,大家一起學習~