11-pytest-assert断言

简介: 11-pytest-assert断言

前言

  • 在做自动化测试中,怎么把实际结果和预期结果作比较呢,有个专业的术语叫做断言,符合预期的用例状态是pass,不符合预期用例状态是 failed

断言passed

1. # -*- coding: utf-8 -*-
2. # @Time    : 2021/10/14
3. # @Author  : 大海
4. # @File    : test_20.py
5. import pytest
6. 
7. 
8. def four():
9. return 4
10. 
11. 
12. def test_function():
13. # 调用four方法返回4,与期望结果相同,结果为passed
14. assert four() == 4
15. 
16. 
17. if __name__ == '__main__':
18.     pytest.main(["-s", "test_20.py"])

断言failed

1. # -*- coding: utf-8 -*-
2. # @Time    : 2021/10/14
3. # @Author  : 大海
4. # @File    : test_21.py
5. import pytest
6. 
7. 
8. def four():
9. return 4
10. 
11. 
12. def test_function():
13. # 调用four方法返回4,与期望结果不同,结果为failed
14. assert four() == 5
15. 
16. 
17. if __name__ == '__main__':
18.     pytest.main(["-s", "test_21.py"])

断言error

1. # -*- coding: utf-8 -*-
2. # @Time    : 2021/10/14
3. # @Author  : 大海
4. # @File    : test_22.py
5. 
6. import pytest
7. 
8. 
9. @pytest.fixture()
10. def user():
11. print("这是登录操作!")
12.     user = '小白'
13. assert user == "小白兔"  # 1.在fixture中断言失败就是error
14. return user
15. 
16. 
17. def test_1(user):
18. assert user == "小白"
19. 
20. 
21. # 2.代码写的有问题也会error,此处未定义名为login的fixture,
22. def test_2(login):
23. assert login == '小白'
24. 
25. 
26. if __name__ == "__main__":
27.     pytest.main(["-s", "test_22.py"])

异常断言

1. # -*- coding: utf-8 -*-
2. # @Time    : 2021/10/14
3. # @Author  : 大海
4. # @File    : test_23.py
5. 
6. import pytest
7. 
8. 
9. def test_zero_division():
10. """断言除0异常"""
11. with pytest.raises(ZeroDivisionError) as e_info:
12. 1 / 0
13. 
14. # 断言异常类型type
15. # e_info 是一个异常信息实例,它是围绕实际引发的异常的包装器。主要属性是.type、 .value 和 .traceback
16. print('value:', e_info.value)
17. print('type:', e_info.type)
18. print('traceback:', e_info.traceback)
19. assert e_info.type == ZeroDivisionError
20. # 断言异常value值
21. assert "division by zero" in str(e_info.value)
22. 
23. 
24. if __name__ == '__main__':
25.     pytest.main(["-s", "test_23.py"])

常用断言

  • assert xx 判断xx为真
  • assert not xx 判断xx不为真
  • assert a in b 判断b包含a
  • assert a not in b 判断b不包含a
  • assert a == b 判断a等于b
  • assert a != b 判断a不等于b
1. # -*- coding: utf-8 -*-
2. # @Time    : 2021/10/14
3. # @Author  : 大海
4. # @File    : test_24.py
5. import pytest
6. 
7. 
8. def is_true(age):
9. if age == 18:
10. return True
11. else:
12. return False
13. 
14. 
15. def test_01():
16.     a = 5
17.     b = -1
18. assert is_true(a)  # 断言为真
19. assert not is_true(b)  # 断言为假
20. 
21. 
22. def test_02():
23. # 断言包含
24.     a = "hello"
25.     b = "hello world"
26. assert a in b
27. 
28. 
29. def test_03():
30. # 断言不包含
31.     a = '小白'
32.     b = "大海"
33. assert a not in b
34. 
35. 
36. def test_04():
37. # 断言相等
38.     a = "小白"
39.     b = "小白"
40. assert a == b
41. 
42. 
43. def test_05():
44. # 断言不等
45.     a = 5
46.     b = 6
47. assert a != b
48. 
49. 
50. if __name__ == "__main__":
51.     pytest.main(["-s", "test_24.py"])


相关文章
|
7月前
|
人工智能
assert()函数(断言函数)
assert()函数(断言函数)
104 0
assert()函数(断言函数)
|
Python
Python assert断言语句
Python assert断言语句
97 0
|
5月前
|
Java 测试技术
使用assert函数进行单元测试
使用assert函数进行单元测试
|
测试技术 Python
Pytest断言
Pytest断言
59 0
|
7月前
|
传感器 安全 编译器
【C++断言机制】深入理解C/C++ 中静态断言static_assert与断言 assert
【C++断言机制】深入理解C/C++ 中静态断言static_assert与断言 assert
164 0
|
7月前
|
C#
C#调试与测试 | Assert(断言)
什么是Assert呢? 断言是一种用于在程序运行时检查条件是否满足的工具。如果条件不满足,断言就会抛出一个异常,从而帮助我们快速定位问题并进行调试。 在C#中,可以使用Debug.Assert方法来实现断言,该方法接受一个布尔表达式作为参数,如果该表达式的值为false,就会抛出一个AssertionFailedException异常。
329 0
|
测试技术
unittest--断言
unittest--断言
|
测试技术 Python
Pytest前后置以及fixture实战部分
Pytest前后置以及fixture实战部分
52 0
|
测试技术
pytest学习和使用5-Pytest和Unittest中的断言如何使用?
pytest学习和使用5-Pytest和Unittest中的断言如何使用?
98 0
pytest学习和使用5-Pytest和Unittest中的断言如何使用?