Pytest - 断言判断(1) - 常用断言方法
常用断言方法
- 与unittest相比,pytest的断言使用的是python自带的
assert
关键字来进行断言。
- assert 关键字后面可以接一个表达式:
- 表达式的最终结果为
True
,那么断言通过,用例执行成功; - 表达式的最终结果为
False
,那么断言失败,用例执行失败;
- 表达式的最终结果为
比较大小和相等
assert
可以使用直接使用运算符来比较==
(相等)、!=
(不相等)<
(小于)、>
(大于)<=
(小于等于)、>=
(大于等于)
test_py.py
import pytest
a = 123
b = 456
class Test_py:
def test_a(self):
assert a == b
def test_b(self):
assert a != b
def test_c(self):
assert a < b
def test_d(self):
assert a > b
def test_e(self):
assert a <= b
def test_f(self):
assert a >= b
if __name__ == "__main__":
pytest.main(['-q', 'test_py.py'])
# test_b,test_c,test_e 测试成功
# test_a,test_d,test_f 测试失败
包含不包含
assert
使用in
和not in
来判断包含的关系。
test_py.py
import pytest
a = "123"
class Test_py:
def test_a(self):
assert "1" in a
def test_b(self):
assert "1" not in a
if __name__ == "__main__":
pytest.main(['-q', 'test_py.py'])
# test_a 测试成功
# test_b 测试失败
True 或 False
assert
断言真假不需要任何辅助符号:assert
直接判断对象是否为 True ;assert not
用于判断是否为 False。
test_py.py
import pytest
a = True
class Test_py:
def test_a(self):
assert a
def test_b(self):
assert not a
if __name__ == "__main__":
pytest.main(['-q', 'test_py.py'])
# test_a 测试成功
# test_b 测试失败
断言异常信息提示
当测试断言失败后,需要输出指定的异常信息,在 assert
断言后,增加异常信息即可
test_py.py
import pytest
def test_a():
assert False, "这是一条异常信息"
if __name__ == "__main__":
pytest.main(['-q', 'test_py.py'])