python——unittest

unitest库


一、unitest库是什么?

1.unitest库的介绍:unittest原名为PyUnit,是由java的JUnit衍生而来。unittest是xUnit系列框架中的一员;

二、unitest包含哪些?

test fixture:代表了用例执行前的准备工作和用例执行之后的清理工作。比如在用例执行前创建临时文件和文件夹,又或者启动1个server进程等;一个测试用例的初始化准备及环境还原,主要是setUp() 和 tearDown()方法;

test case: 测试用例,一般检查一组输入的响应(输出)是否符合预期。unittest模块提供了TestCase类来帮助我们创建测试用例;此时运行用例的前置条件和运行用例之后的清理工作就可以交给setUp()和tearDown()来执行;

test suite :测试用例或测试套件的集合,一般先创建一个套件,然后把需要一起执行的用例添加到套件中,然后运行测试套件,即运行所有组合的用例;

test runner: 用来执行测试用例并输出测试结果的组件。可以是图形界面或命令行界面(可以简单运行,也可以生成简单的测试结果;或者可以下载HTMLTestRuneer文件,生成网页版的测试报告)

三、unitest的基本操作?

# 导入unitest库
import unittest

# 创建一个测试用例类,继承与unitest.TestCase
class Test_case(unittest.TestCase):

    def setUp(self):
        print('执行用例前需要完成的事情')

    def tearDown(self):
        print('执行用例后要做的事情')
    # 用例
    def test_1(self):
        print('第1个测试用例')
    def test_2(self):
        print('第2个测试用例')
    def test_3(self):
        print('第3个测试用例')
    # 非测试用例方法
    def fff(self):
        print('我不是测试用例')

# 简单运行测试用例
if __name__ == '__main__':
    unittest.main()

四、unitest的中的断言

unitest中断言主要由三种:

1.基本的布尔断言,即:要么正确,要么错误的验证

2.比较断言,如,比较两个变量的值(跟布尔断言区别不大,主要通过比较两个变量的值得出布尔值)

3.复杂断言,用的比较少,像断言两个列表、元组等
在这里插入图片描述


总结

以上就是本次的讲解,如果大家有什么其他的想法可以一起学习,感谢…

### Python 中 `unittest` 测试框架概述 `unittest` 是 Python 标准库中的一个单元测试框架,旨在帮助开发者通过编写运行测试用例来验证代码的功能正确性[^1]。 #### 基本结构与使用方法 为了利用 `unittest` 进行有效的单元测试,通常遵循以下几个方面: - **导入模块**:首先需要从标准库中导入 `unittest` 模块。 - **创建自定义测试类**:该类应当继承自 `unittest.TestCase` 类。这允许访问一系列断言方法以及其他辅助函数,从而简化了测试逻辑的实现过程。 - **定义测试方法**:每一个单独的方法代表了一个具体的测试场景;按照惯例,这些方法的名字应该以字符串 `"test"` 开头以便被自动识别为可执行的测试案例。 下面给出一段简单的例子展示如何构建基本的测试环境并添加两个不同的测试方法: ```python import unittest class TestDemo(unittest.TestCase): def test_method1(self): """这是一个简单的打印语句作为第一个测试方法""" print("测试方法1") def test_method2(self): """这是另一个带有不同输出信息的测试方法""" print("测试方法2") if __name__ == '__main__': unittest.main() ``` 这段代码展示了最基础的应用方式[^2]。 #### 高级特性——指定执行特定测试用例 除了上述常规操作外,有时可能只希望针对某些特定部分做更细致入微地考察而非全部一起跑一遍。此时可以借助命令行参数灵活控制要加载哪些组件参与进来: - 或者精确到某一层级下的具体类别乃至单个成员级别; - 对于较新版本 (Python 3+) 的解释器而言甚至还能够直接依据文件系统的相对位置来进行定位。 例如,在终端里输入如下指令即可完成对应的任务[^3]: ```bash # 执行名为 'test_module' 'test_module2' 的模块内所有的测试用例 python -m unittest test_module1 test_module2 # 只运行来自 'test_module' 文件里的 'TestClass' python -m unittest test_module.TestClass # 更进一步聚焦至 'TestClass' 下面叫作 'test_method' 的那个实例化对象身上 python -m unittest test_module.TestClass.test_method # 如果知道确切的位置,则可以直接提供完整的路径名给它(适用于 Python 3) python -m unittest tests/test_something.py ``` #### 关键概念之测试夹具(Fixtures) 最后值得一提的是,“测试夹具”这一机制对于提高效率同样至关重要。它们提供了设置(`setUp`)以及清理(`tearDown`)工作区的能力,使得每次迭代之间都能保持干净独立的状态不受干扰。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值