什么是断言呢?
断言就是世界结果与期望结果去对比,符合预期的测试就是pass,不符合预期的测试就是failed。python当中的 assert(断言)用于判断一个表达式,在表达式条件为 false 的时候触发异常
assert 表达式 , 描述
表达式为我们的预期结果,当表达式的结果为False时,抛出 AssertionError 异常,如无异常捕获程序遇到异常时直接结束运行。反之,表达式结果为True 程序继续向下运行。
我们何时使用断言?
断言需要慎用,尤其是写测试用例或者程序时,因为我们运行程序时,如果断言失败,无异常捕获程序则会结束运行,导致后面的代码无法执行。
断言一般用在防御型的编程、运行时检查程序逻辑、检查约定、程序常量、检查文档时,在从来不会运行失败的代码不必要加上断言。
常见的格式:
assert 1==1
from random import randint
def random_num():
return randint(1,10)
def test_1():
assert random_num() == 2
常见的基本断言方法:
import unittest
import random
# 定义测试类
c=random.randint(10,100)
d=random.randint(10,100)
class TestDemo(unittest.TestCase):
def test_a(self,a=c,b=d):
try:
self.assertEqual(a,b)
print("{0}等于{1},a的值:{0},b的值:{1}".format(a,b))
except:
print("{0}不等于{1},a的值:{0},b的值:{1}".format(a,b))
raise
def test_b(self,a=c,b=d):
try:
self.assertNotAlmostEqual(a,b)
print("{0}不等于{1},a的值:{0},b的值:{1}".format(a,b))
except:
print("{0}等于{1},a的值:{0},b的值:{1}".format(a,b))
raise
if __name__ == '__main__':
unittest.main()
?
|