1. 使用assert声明
pytest与unittest对比:
pytest | unittest |
---|---|
assert something | assertTrue(something) |
assert a == b | assertEqual(a,b) |
assert a <= b | assertLessEqual(a,b) |
pytest有一个重要的功能,它可以重写assert关键字。pytest会截断对原生assert的调用,替换为pytest定义的assert,从而提供更多的失败信息和细节。
增加一个运行失败的测试用例:
def test_failure():
"""使用assert"""
t1 = 'a'
t2 = 'b'
assert t1 == t2
运行结果如下:
失败的测试用例在行首都用一个>号来表示。以E开头的行是pytest提供的额外判定信息,用于帮助我们了解异常的具体情况。
2. 预期异常
定义一个Task类型数据,并增加一个会引起TypeError异常的测试用例:
Task = namedtuple('Task', ['summary', 'owner', 'dine', 'id'])
Task.__new__.__delattr__ = (None, None,<