活动地址:CSDN21天学习挑战赛
学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:
想系统/深入学习某技术知识点…
一个人摸索学习很难坚持,想组团高效学习…
想写博客但无从下手,急需写作干货注入能量…
热爱写作,愿意让自己成为更好的人…
…
欢迎参与CSDN学习挑战赛,成为更好的自己,请参考活动中各位优质专栏博主的免费高质量专栏资源(这部分优质资源是活动限时免费开放喔~),按照自身的学习领域和学习进度学习并记录自己的学习过程。您可以从以下3个方面任选其一着手(不强制),或者按照自己的理解发布专栏学习作品,参考如下:
学习知识
unittest:
单元测试概述:
什么是单元测试:单元测试是开发者写的代码,用力点烟被测代码是否正确
什么时候开始测试:越早越好
由谁负责:有程序员负责即为开发
注意:根据预计和才程序逻辑来写case 而不是针对程序实现去写,这样的话单元测试就失去了意义
框架列举:
unittest,pytest,Nose(unittest的扩展),Mock
单元测试覆盖率:被用来用于自动化以及手工测试是否全面的指标之一
覆盖类型:1:语句覆盖:通过设计一定量的测试用力,保证被测试的方法每一行代码都会被执行一遍,运行测试用例的时候被击中的代码行被称为被覆盖的语句
2:条件覆盖:和判断覆盖类似,不过判定覆盖关注的整个判定语句而条件覆盖关注的是某个判断条件
3:判断覆盖:运行测试用例的过程中被击中的判定语句
4:路径覆盖:覆盖所有可能执行的路径
unittest框架介绍
1:Python自带的单元测试框架,常用在单元测试
2:在自动化测试中提供用例组织与执行
3:提供丰富的断言方法-严重函数等功能
4:加上HTMLTestTunner可以生产html的报告
编写与规范:
unittest提供了test cases ,test suites,test fixtures,test runner相关组件
编写规范:测试模块首先 import unittest,测试类必须继承 unittest.TestCase 测试方法必须以test_开头,模块名和类没有特殊要要求
总结:
1:setUp用来为测试准备环境,tearDown用例清理环境
2:所有想要在所有case执行之前在准备一次环境,并在所有case执行结束之后在清理环境,我们可以setUpClass()与tearDownClass()比如数据库连接及销毁
3:如果想要有些方法不在本次执行使用@unittest.skip
4:测试方法的明星:以test开头
5:各种执行-单一用例,全部
代码实操
import unittest
class demo(unittest.TestCase):
@classmethod
def setUp(self) -> None:
print("setup")
def tearDown(self) -> None:
print("teardown")
def test_case01(self):
print("testcase01")
self.assertEqual(2, 2,"判断相等")
self.assertIn("h", "this")
def test_case02(self):
print("testcase02")
self.assertEqual(2, 2,"判断相等")
self.assertIn("h", "this")
@unittest.skip #跳过某些不执行的用例
def test_case03(self):
print("testcase03")
self.assertEqual(2, 2,"判断相等")
self.assertIn("h", "this")
if __name__ == '__main__':
unittest.main()
其字字段结果:
明天更新下一部分unittest代码实操