因為用心,才會喜歡

粥雨

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 使用 innot 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'])



posted @ 2023-05-23 16:33  粥雨  阅读(229)  评论(0)    收藏  举报