python单元测试框架unittest学习笔记一--基本概念
一、unittest框架基本原理介绍
unittest是受Junit启发编写的一款python语言的单元测试框架,并与其他语言中的主流单元测试框架有相似的风格。unittest支持自动化测试,测试准备和测试清理部分代码复用,支持测试用例聚合成测试套件,并与报告生成框架相互独立
二、为什么要使用unnitest框架来做单元测试
1、能够组织多个测试用例执行
2、提供丰富的断言方法
3、能够生成测试报告
三、unnittest框架的核心要素
1、testcase:测试用例
一个测试用例是一个独立的测试单元。它检查输入特定的数据时的相应。unittest提供一个基类:TestCase,用于新建测试用例。
2、TestSuite:测试套件
test suite是多个测试用例组合在一起,或称测试套件,并且testsuite可以嵌套testsuite。它用于归档需要一起执行的测试
3、testloader:加载组件
将指定路径下的测试用例py文件加载到testsuite中
4、test runner:测试运行器
testrunner是一个用于执行和输出测试结果的组件。只用来执行测试用例的,其中run(test)会执行testsuite/testcase中的run(result)方法。
这个运行器可能使用图形接口、文本接口,或返回一个特定的值表示运行测试的结果
5、test fixture:测试脚手架
testfixture 表示为了开展一项或多项测试所需要进行的准备工作,以及所有相关的清理工作。举个例子:这可能包含创建临时或者代理数据库、
目录,再或者启动一个服务器进程等等
四、基本示例
创建一个测试用例执行类并执行测试
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
"""unitest的语法规则: 用import unitest导入unitest模块 定义一个集成unittest.TestCase的测试用例类,如class XXX(unitest.TestCase) 即如果定义了则会在每个测试case执行前先执行setup方法,执行完毕后执行teardown方法 用例名 必须以test开头,否则unitest不能识别 一个测试用例应该只测试一个方面,测试的目的和测试内容应该很明确,主要是调用seertEqual\assertRaises等断言方法来 判断程序执行结果和预期值是否相符合 调用unnitest.main()启动测试 """ import unittest def sum (a,b): return a + b class test01(unittest.TestCase): def test_01( self ): print ( "in function test 01" ) def test_02( self ): print ( "in function test 02" ) def test_03( self ): print ( sum ( 1 , 8 )) def test_04( self ): print ( sum ( 6 , 9 )) def test_05( self ): print ( sum ( "aaa" , 9 )) if __name__ = = '__main__' : unittest.main() |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人