unittest断言方法
unittest断言方法
断言是测试用例的核心。我们通常使用assertEqual()来判断预期结果,用assertTrue()和assertFalse来做是非判断。
- asserEqual(a,b) 判断a是否等于b
- assertTrue(x) 判断x是否为真
- assertFalse(x) 判断x是否为假
import unittest
class Test(unittest.TestCase):
def setUp(self):
print('start')
def tearDown(self):
print('bye')
def test_001(self):
self.assertEqual('1','1')
def test_002(self):
self.assertEqual('1','0')
if __name__ == '__main__':
unittest.main()
运行结果,毫无疑问是失败的
抛出的异常在test_002方法中,预期结果是1,实际结果是0,0不等于1
在执行测试用例的过程中,最终用例是否执行通过,是通过判断测试得到的实际结果与预期结果是否相等决定的。unittest 框架的 TestCase类 提供下面方法用于测试结果的判断
方法 | 检查 |
---|---|
asserEqual(a,b) | a == b |
asserNotEqual(a,b) | a != b |
assertTrue(x) | bool(x) Is True |
assertFalse(x) | bool(x) Is False |
assertIs(a,b) | a Is b |
assertIsNot(a,b) | a Is not b |
方法 | 检查 |
---|---|
assertIsNone(x) | x Is None |
assertIsNotNone(x) | x Is Not None |
assertIn(a,b) | a In b |
assertNotIn(a,b) | a not In b |
assertIsInstance(a,b) | IsInstance(a,b) |
assertNotIsInstance(a,b) | not IsInstance(a,b) |
异常处理
断言如果失败,会终止程序,而我们在进行自动化测试的时候,不能说某个断言失败了,就所有用例都不再运行了,所以,断言失败,需要异常处理,抛出异常,让程序继续运行
import unittest
class Test(unittest.TestCase):
def setUp(self):
print('start')
def tearDown(self):
print('bye')
def test_002(self):
try:
self.assertEqual('1','0')
except AssertionError as e:
print("该条测试断言失败",e)
if __name__ == '__main__':
unittest.main()
拓展: 除了右键通过 run 运行 ,还可以通过在终端输入
python 文件名
运行文件
. 表示通过
F False 表示断言没用通过
E Error 表示程序内部发生了错误