前言
一条测试用例必须要有断言才是完整的用例,没有断言的用例是没有灵魂的,虽然断言的作用非常大,但使用起来非常简单。
例子:
# content of test_sample.py def inc(x): return x + 1 def test_answer(): assert inc(3) == 5
运行结果:
$ pytest =========================== test session starts ============================ platform linux -- Python 3.x.y, pytest-6.x.y, py-1.x.y, pluggy-0.x.y cachedir: $PYTHON_PREFIX/.pytest_cache rootdir: $REGENDOC_TMPDIR collected 1 item test_sample.py F [100%] ================================= FAILURES ================================= _______________________________ test_answer ________________________________ def test_answer(): > assert inc(3) == 5 E assert 4 == 5 E + where 4 = inc(3) test_sample.py:6: AssertionError ========================= short test summary info ========================== FAILED test_sample.py::test_answer - assert 4 == 5 ============================ 1 failed in 0.12s =============================
错误原因显示4==5所以会断言错误。
常用断言
pytest里面断言实际上就是python里面的assert断言方法,常用的有以下几种
- assert xx 判断xx为真
- assert not xx 判断xx不为真
- assert a in b 判断b包含a
- assert a == b 判断a等于b
- assert a != b 判断a不等于b
import pytest def is_true(a): if a > 0: return True else: return False def test_001():
'''断言为真''' a = 5 b = -1 assert is_true(a) assert not is_true(b) def test_02(): '''断言b包含 a''' a = "zeng" b = "zengxuejie" assert a in b def test_03(): '''断言相等''' a = "zeng" b = "zeng" assert a == b def test_04(): '''断言不等于''' a = 5 b = 6 assert a != b
总体而言,断言很重要,但是使用起来不复杂,是测试用例必不可少的一部分。
关注个人公众号:测试开发进阶之路