開發環境:appium Android python
摘要:最近進行自動化測試,經常使用斷言,在此總結一些unittest的TestCase類提供的常用assert方法。
具體:
方法 | 檢查 | 新的 |
---|---|---|
assertEqual(a, b) |
a == b |
|
assertNotEqual(a, b) |
a != b |
|
assertTrue(x) |
bool(x) 是 True |
|
assertFalse(x) |
bool(x) 是 False |
|
assertIs(a, b) |
a 是 b |
3.1 |
assertIsNot(a, b) |
a 是 不是 b |
3.1 |
assertIsNone(x) |
x 是 無 |
3.1 |
assertIsNotNone(x) |
x 是 不是 無 |
3.1 |
assertIn(a, b) |
a 在 b |
3.1 |
assertNotIn(a, b) |
a 不是 在 b |
3.1 |
assertIsInstance(a, b) |
isinstance(a, b) |
3.2 |
assertNotIsInstance(a, b) |
不是 isinstance(a, b) |
3.2 |
assert方法都接受一個msg參數,如果指定,則用作失敗時的錯誤消息(參見longMessage)。
1.assertEqual(first,second,msg=None)
該方法是測試first和second是否相等。如果值不相等,測試將失敗。
此外,first與second是完全相同的類型以及list,tuple,dict,set,frozenset或str或子類注冊addTypeEqualityFunc()
將調用類型特定的相等函數,以生成更有用的默認錯誤消息。
在版本3.1中已更改:添加了類型特定的相等函數的自動調用。
在版本3.2中更改: assertMultiLineEqual()
添加為用於比較字符串的默認類型相等函數
2.assertNotEqual(first,second,msg=None)
該方法是測試first與second不相等,如果值相等,測試將失敗。
3.assertTrue(expr,msg=None)和assertFalse(expr,msg=None)
測試expr是true(或false)但當有更具體的方法可以使用時,應避免使用這種方法,例如,assertEqual(a,b)可判斷a與b是否相等時,應使用assertEqual()方法,而不是assertTrue(a==b)因為他們在出現故障時提供更好的錯誤信息。
4.assertIsNone(expr,msg=None)和assertIsNotNone(expr,msg=None)
測試expr是不是無,這個是版本3.1的新功能。
5.assertIn(first,second,msg=None)和assertNotIn(first,second,msg=None)
測試first是否在second中
6.assertIsInstance(obj,cls,msg=None)和assertNotIsInstance(obj,cls,msg=None)
測試obj是不是cls的實例(它可以是類或類的元組,如isinstance() 支持。檢查具體類型使用assertIs(type(obj),cls))
該方法是版本3.2中的新功能