unit test 框架介绍

Unit test 框架最初的灵感来源于 JUnit,并且与其他语言的主要单元测试框架具有类似的风格。

基本思想:
支持各种层面的自动化测试;
测试用例共享setUp初始化和tearDown清理代码;
通过各种方式组织测试和规划测试用例;
保持测试代码与测试运行之间的的独立性。

为实现其基本思想, unit test 使用面向对象的方式实现如下四大功能:

test fixture
test fixture 代表执行一个或者多个测试用例所需要的准备工作和结束测试以后的相关清理工作。

比如在做某些测试时,需要连接数据库初始化某些数据,或者在结束测试时需要清理产生的测试数据;再比如在测试某些配置的时候,测试完毕后会在 tearDown 中恢复被修改的设置。

不做这些初始化和清理工作,可能会导致无法实现自动化测试,因为运行一次测试后下一次测试代码可能就无法运行了。

test case
test case 是自动化测试的最基本单元,检查程序对一组特定输入的响应。对单元测试来说,可能是构造函数或者方法的参数,然后断言函数或者方法的返回值;对 UI 自动化测试来说,是模拟操作步骤,并断言程序的 UI 呈现;对接口自动化测试来说,构造接口数据并断言接口返回值。

在 test case 的编写方法上, unittest 提供了一个基类TestCase,通过对该基类的继承来创建新的测试用例。

test suite
test suite 测试套件是自动化测试中最常见的概念,用于将测试用例进行收集和组合,以便能够按需批量执行测试。

test runner
test runner 是协调测试用例的执行,并向用户提供结果的展示。这些测试运行可能是文本形式、图形界面、网页格式或只返回特定的值,用来标识测试运行的结果。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Python 中,有很多流行的单元测试框架,例如unittest、pytest、nose等。这里我以unittest为例,为您介绍如何搭建一个简单的单元测试框架。 1. 创建测试文件 首先,我们需要创建一个测试文件,例如test_example.py。在该文件中,我们需要导入unittest模块,并创建一个继承自unittest.TestCase的测试类。 ```python import unittest class TestExample(unittest.TestCase): def test_addition(self): self.assertEqual(1+1, 2) ``` 在上述代码中,我们创建了一个名为TestExample的测试类,并在其中定义了一个名为test_addition的测试方法。在该方法中,我们调用了assertEqual方法来判断1+1的结果是否等于2。 2. 运行测试 接下来,我们需要运行测试。可以使用unittest模块提供的TestLoader和TextTestRunner类来运行测试。 ```python import unittest class TestExample(unittest.TestCase): def test_addition(self): self.assertEqual(1+1, 2) if __name__ == '__main__': loader = unittest.TestLoader() suite = loader.loadTestsFromTestCase(TestExample) runner = unittest.TextTestRunner() result = runner.run(suite) ``` 在上述代码中,我们使用if __name__ == '__main__'语句来判断是否直接运行该文件。如果是,我们创建一个TestLoader对象,使用loadTestsFromTestCase方法加载TestExample类中的测试方法,然后创建一个TextTestRunner对象并运行测试。 3. 查看测试结果 测试运行后,我们可以查看测试结果。可以使用TextTestResult类来获取测试结果。 ```python import unittest class TestExample(unittest.TestCase): def test_addition(self): self.assertEqual(1+1, 2) if __name__ == '__main__': loader = unittest.TestLoader() suite = loader.loadTestsFromTestCase(TestExample) runner = unittest.TextTestRunner() result = runner.run(suite) print(result) ``` 在上述代码中,我们在测试运行后使用print函数打印测试结果。 以上就是一个简单的单元测试框架的搭建过程。您可以根据自己的需求,进一步扩展和优化测试框架

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值