pytest框架-assert断言

目录

1、assertEquals(expected,actual)  、assertNotEquals(expected,actual)

2、assertTrue(message,condition) 、 assertFalse(message,condition)

3、assertNull(message,object) 、 assertNotNull(message,object)

4、assertSame(expected,actual) 、 assertNotSame(expected,actual)

5、fail(message)

6、assert

7、异常信息

8、常用断言


1、assertEquals(expected,actual)  、assertNotEquals(expected,actual)

比较实际值与预期值是否一致。

如果一致,程序继续运行,否则抛出异常,会打印报错信息。常用断言方法,便于调试。

2、assertTrue(message,condition) 、 assertFalse(message,condition)

判断条件的真假与预期值是否相同

如果条件的真假与预期相同,程序继续运行,否则抛出异常,不会打印报错信息。

3、assertNull(message,object) 、 assertNotNull(message,object)

判断对象是否为空

判断一个对象是否为空,如果结果与预期相同,程序继续运行,否则抛出异常。

4、assertSame(expected,actual) 、 assertNotSame(expected,actual)

判断预期的值和实际的值是否为同一个参数(即判断是否为相同的引用)

如果结果与预期相同,程序继续运行,否则抛出异常。

两者的区别:

assertSame(A,B)  ————————————> A==B

assertEquals(A,B)————————————>A.equals(B)

5、fail(message)

“fail”断言能使测试立即失败

这种断言通常用于标记某个不应该被到达的分支。例如测试中某个代码块要try  catch,则在catch

代码中加入fail(message)方法,否则代码直接进入catch块,无法判断测试结果。

6、assert

验证Python测试中的期望和值

新建test_1.py文件:

#assert断言
#验证Python测试中的期望和值

import pytest
def f():
    return 3
def test_function():
    assert f() == 4
if __name__ == "__main__":
    pytest.main(["-s", "test_1.py"])

运行结果:

pytest框架-assert断言_第1张图片

断言f()函数的返回值,接下来会看到断言失败,因为返回的值是3,判断等于4,所以失败了。

从报错信息可以看到断言失败原因:E assert 3 == 4

7、异常信息

在异常的时候,输出一些提示信息,这样报错后,就方便查看是什么原因了。

 新建test_2.py文件:

import pytest
def f():
    return 4

def test_function():
    a=f()
    assert a%3==0,"判断a为奇数,当前a的值为:%s"%a
if __name__ == "__main__":
    pytest.main(["-s", "test_2.py"])

 运行结果:

pytest框架-assert断言_第2张图片

 当断言失败的时候,会给出自己写的失败原因了E AssertionError: 判断a为奇数,当前a的值为:4;

8、常用断言

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

新建test_3.py文件:

import pytest
def is_true(a):
    if a>0:
        return True
    else:
        return False
#断言xx为真
def test_01():
    a=6
    b=-6
    assert is_true(a)
    assert not is_true(b)
#断言a中包含b
def test_02():
    a="hello"
    b="o"
    assert b in a
#断言相等
def test_03():
    a="123"
    b="123"
    assert a==b
#断言不相等
def test_04():
    a="123"
    b="1234"
    assert a!=b
if __name__ == "__main__":
    pytest.main(["-s", "test_3.py"])

你可能感兴趣的:(pytest,python)